Office365のフェデレーションを廃止した(ADFSの廃止)

1年前にOffice365を利用するのならということで、ADFSを利用したSSO環境を構築した。
しかし、この環境を維持するのにそこそこのコストがかかるため、今月思い切って廃止してみた。
尚、ADFSの維持に必要なコストを以下の通り。

・ADFSサーバ/ADFS Proxyサーバ(自宅の仮想環境のリソース圧迫)

・フェデレーションのためのSSL証明書

今回は、パスワード情報を含めてAzure ADに同期することでADFSを廃止しようとしたのだが、
予想通り面倒くさい作業になった。
というのも、Office365側で利用しているドメインが「フェデレーション構成済み」になっているので、
この解除が必要となる。しかし、この解除の方法に関する情報がいまいちない。
調べると、もっともらしいコマンドがPowerShellにあるのだが、
まだ利用されている資源があるのでダメだよという当然の警告がでて失敗した。

docs.microsoft.com

ドメインを残したまま、ェデレーションを切れないかなと少し調べたが、
情報が見つからないので結果的には、一度ドメインを削除して同一名称で再作成した。

※一度ユーザ情報をonmicrosoft.comとかのドメインに変更しなければ削除はできない。
 理由は同様に利用中のリソースがあることでドメインの削除に失敗するから。

 同じ話で、ユーザ情報をonmicrosoft.comとかのドメインに一度変更して利用中のリソースを
 無くしていれば、上記のコマンドが成功したかもしれない。
 だが、ここまでやるのであれば一度削除して再作成のほうが綺麗かなと思ったのでやっていない。

 どうせ、ドメインを再作成しても必要なのはレコードの登録(TXT/MX等)くらいだが、
 以前のがそのまま利用できるのだから。

powercfg batteryreportオプション

Microsoftさんもさりげなく機能アップデートを続けている。

powercfgに新たなオプションがあるのを最近知った。

確認してみるとWindows8/8.1以降らしい。

充電回数や、最大容量、バッテリー起動での予想起動時間を表示してくれる。

Windows8以降に作成されたこともあり、今風な画面。

www.atmarkit.co.jp

※なぜ知ったかというと、surfaceのバッテリー駆動時間が短いから。。

Yahoo Query Language(YQL)

Yahooさんは、様々なAPIを提供してくれていてありがたい限りです。
そんななか、YQL(Yahoo Query Language)というのがあることを知りました。

これは、SQLライクなクエリを書くことで、Webからデータを取得できる言語です。
さらに素晴らしいのが、以下のリンクのようにWebコンソールを用意している点。
これで、ブラウザ上でどのようなデータにアクセスできるかを自由に試すことができました。
加えて、画面下部に実際にHTTPで情報を取得するためのクエリも吐き出しているので
自身のプログラミングに組み込むのにも便利です。

developer.yahoo.com

よくYahoo Financeから為替データを取得するとかを実施している方がいるかと思います。
これに対してもYQLで対応可能でした。

# こんな感じです。SQLですね(笑)
select * from yahoo.finance.quote where symbol in ("YHOO","AAPL","GOOG")

余談ですが、実際にYQLを調べるのもめんどくさいという方は、
Pythonであれば、Yahoo-finance というモジュールを利用すると簡単かと思います。
中を見る限り、YQLを実行しているようでした。

GitHub - lukaszbanasiak/yahoo-finance: Python module to get stock data from Yahoo! Finance

pypi.python.org

SCCMクライアントからレポートが上がらない際の切り分け方法

最近は、MCPの勉強で触ったということもありSCCMネタ。

余談ですが、
ITの世界は何事もまず触ってみるというのが大事なので
環境を試しに作るのが第一歩だと思います。

MSさんは評価ガイドを各製品提供してくれているのでそのあたりの導入は楽です。
ちなみに、SystemCenter関連の評価ガイドは下記を参考にするのがいいと思います。

SE'S BOOK: System Center 2012 R2 自習書(評価ガイド)

ここから本題ですが、SCCMを操作していると様々な操作ができるのはいいが、
どこから設定できるのか、設定を確認できるのかが分からないことが多々あると思いました。
例えばクライアントにエージェントをインストールして、
HW/SWインベントリ収集の設定を行ったが、収集されない等。

この問題の切り分けの方法は以下の手順になるかと思います。

手順1.サーバ側で想定した設定がされているか
手順2.クライアント側の挙動の確認


手順1に関して

まずは、当たり前ですが自分が想定した設定が
クライアントに適用されるようになっているかを確認します。

SCCMでは、クライアントの設定は、
「管理」>「概要」>「クライアント設定」で行います。
これは、GPOと考えが似ており複数のポリシーの重ね合わせが最終的な設定となります。

では最終的にクライアントにどのような設定が適用されるかを
見るにはどうすればいいかというと下記のようになります。

「資産とコンプライアンス」>「概要」>「デバイス」>「対象PC」を選択して、
「クライアント設定」>「クライアントの設定の結果」

f:id:etsubo:20160724220550j:plain

上記が、実際の結果セットの図です。
これは対象デバイスに適用されるポリシーを重ね合わせた最終結果です。
想定した設定でなければ、どこかのポリシーに上書きされている等が考えられます。


手順2に関して

実際にサーバ側で想定通りの設定がされている場合は、クライアント側の挙動を疑います。
SCCMエージェントのログを確認することになりますが、
見るべきポイントは下記URLにまとめられています。

設定内容に応じて、指定したログファイルから原因を探します。

Configuration Manager クライアント管理のログ ファイル


そして、、、
ここまで実施して、インベントリ送信もサーバにたいして正常に実施できており
エラー等怪しい項目がない場合ですが、(私のケース)
恐らくデータ自体はSCCMのサーバに送信できているのだと思います。

私は、SCCMの再起動を実施したら突然インベントリ情報を閲覧できるようになりました。

少し調べてみると下記の方のように数日放置したら閲覧できるようになったという報告もあります。
下記サイトの方の言う通り、恐らくサーバ側でデータ反映のタイミングが何かしらあるのだと思います。
私も、何度かクライアントから明示的にデータ送信を実施して見たのですが、
サーバ側の反映タイミングがずれているのかすぐには閲覧できずというところでした。
(結果再起動すると送信した内容が閲覧できるようになった。)

ebi.dyndns.biz

MCP 70-695 受験記

久々にMCP(マイクロソフトの資格試験)を受験したので、感想を書きたいと思います。

今回は、MCSE "Enterprise Devices and Apps" の取得を目標に、
70-695 "Deploying Windows Desktops and Enterprise Applications"を受験しました。

MCSE "Enterprise Devices and Apps" はWindows8のMCSAを取得していれば、
70-695と70-696の2試験に合格すれば資格認定になります。

MCSE: Enterprise Devices and Apps | Microsoft

で、この試験を受けるうえでの障壁は以下2つ。

障壁1:日本語版の試験がない(英語のみ)
障壁2:学習用教材が少ない

・障壁1に関して 
 受験して思ったのだが、これは問題ない。
 文章は容易かつ簡潔な英語文法のみで記載されており、単語もエンジニアにとっては
 馴染みのあるものばかりだった。
 ここに関しては、大学受験など最低限英語を勉強したことがある人は問題ないと思う。

・障壁2に関して
 どちらかというとこれが問題だった。
 mstepにも資料がなく、どのように勉強しようかといろいろ考えたが、
 結果下記書籍で十分だと思う。

 英語の書籍だが、エンジニアにとっては読みやすい文章だと思うし、
 試験内容にそって、必要な内容が書かれていると思う。

 自分はクライアント展開の技術に関しては、
 比較的経験があるので実機での検証とかは特別には行わなかったが、
 経験がない人は、以下の項目に関して触ってみるのがいいかと思う。
 下記の製品を一通り触ったことがあるのであれば、
 上記書籍を用いた復習みたいな学習で問題ないと思う。

  ・MDT
  ・WDS
  ・SCCM
  ・Windows ADK(Dism、USMT、Windows SIM etc...)
   →イメージ作成の技術に関しては必須となる。当たり前だけど。試験項目的に。
  ・Officeの展開方法(Click to Runとか)

OneNote Importerでエラーコード30105が出た場合

Evernoteを長年愛用してきましたが、
皆さんご存知のように無償でのサービスレベルが大きく低下するというアナウンスがありました。

Evernoteが1.5倍に値上げ&無料版の同期端末を2台までに制限するという「改悪」を実施 - GIGAZINE

Evernoteに自身の備忘録を頼りきっているので有償契約してもいいかとも思いまいしたが、
Office365を契約している手前OneNoteを試してからでも遅くはないかなと思い
試して見ることにしました。(OneNote最近評判いいですしね)

EvernoteからOneNoteへのデータ移行に関しては、
MSが「OneNote Importer」というツールを公開しています。

Import content from Evernote to OneNote

EvernoteからOneNoteへ自動移行。「OneNote Importer」の使い方と、移行したノートブックの確認方法 | できるネット

こちらでデータを簡単に移行できるはずでしたが、
なぜかエラーがでて失敗してしまいました。
※あくまでOffice365のOneNoteを利用する場合。
 Office Onlineという無償のサービスだと関係ないと思われる。
 OneDrive for businessとかでてるし。

エラー内容としては、

「エラーコード:30105
OneDrive for businessのセットアップが完全には完了していません」

というもの。

いろいろ調べてみたのですが、
OneDrive for businessのセットアップ事態は問題なく完了していました。
※PCとOffice365のOneDrive for businessと同期はできているし、
 Webからも警告なく利用可能でした。

で、結果としてですが、
OneDriveではなくOneNoteのアカウントセットアップが中途半端になっていました。
上記のエラーコードが表示された人は、Office365のポータルサイトから
OneNote Onlineに接続してみてください。
アカウント関連の警告が出ているのではないでしょうか。
私は出ていましたし、この警告を消せたあとは無事データを移行できました。

iCalデータからOffice365への移行時の注意

今までは、プライベートのスケジュール管理は自前のiCalサーバで管理していました。
今回、Office365を契約していることもあり、こちらに移行したいと思いまして実施してみました。

Office365のスケジュール機能は、outlookなわけですが、
データをインポートする際には、icsファイルを用意することになります。

MaciCalを利用している人は、
iCalの書き出し機能を利用してicsファイルとしてエクスポートできます。
基本的にこのicsファイルをインポートすればいいのですが、
ものによってはエラーがでてインポートに失敗することがあります。

残念ながら、画面上だとなぜエラーになるのか
さっぱり情報が得られないのが苦しいところなのですが。。
少し切り分けしてみると以下の条件があることがわかってきました。

条件1: リマインダー機能等を利用している
条件2: タイムゾーンを複数持っている

条件を説明する前に、少しicsファイルの構造を説明する必要があります。
(icsの構造はシンプルでテキストエディタで開いて中身を確認できます)

http://www.asahi-net.or.jp/~CI5M-NMR/iCal/ref.html

上記サイトがわかりやすくまとまっているのですが、
icsのデータ構造は、

BEGIN:属性名 で始まり、
END:属性名  で終わります。

BEGIN~ENDの間に実際のデータや設定値を格納していく形式です。

例えば、BEGIN:VEVENT~END:VEVENTは
実際のスケジュールの内容が書かれている項目になります。
実際のデータを覗くと下記のような項目がテキストファイルにはずらずらと並びます。

BEGIN:VEVENT
CREATED:
UID:
DTEND;TZID=Asia/Tokyo:20160703T200000
SUMMARY:買い物(スケジュールのタイトル)
DTSTART;TZID=Asia/Tokyo:20160703T190000
DTSTAMP:
LOCATION:どこか
SEQUENCE:
END:VEVENT

"VEVENT"以外にも属性はあり、
"VALARM"・・・これは文字通りアラームを設定した場合に付与される
"VTODO" ・・・これも文字通りTODOを設定した場合に付与。
       リマインダーを利用する人はこの項目がicsファイルに多いはず。

ここでやっと本題のなぜうまくいかないかの説明に戻ると、
条件1は、outlookがVTODOをサポートしていないからと思われる。
条件2は、"VTIMEZONE"というタイムゾーン設定をする属性があるのだが、
     outlookが一つしか"VTIMEZONE"の設定値を許可していないと思われる。
     iCalから出力したicsファイルには複数の"VTIMEZONE"を出力できていたので、
     iCalは複数のタイムゾーン設定を許可しているはず。

本当はOffce365のoutlookの正式な仕様を知りたいのだが、、
どこかに公開されていないかな。

以上、簡単ですが切り分け結果でした。