来月、Los Angelesで開催される、
The Expert Conference 2010のセッションアジェンダが
オフィシャルサイトに掲載されていました。
■TEC for Directory & Identity – Conference Agenda
2009年の開催は、Directory Servicesトラック、ADFSトラック、FIMトラックに分かれていましたが、
2010年の開催では、Directory ServicesトラックとFIMトラックだけになり、
代わりにそれぞれ2トラック用意するようです。
FIMは、いよいよ(やっと?)製品として登場するようですし、期待の大きさがなんとなく感じられます。
昨年もそうでしたが、セッションの一部様子は
終了後にWebCastで公開されると思うので、興味があれば見てみてください。
今日のテーマに入りましょう。
クライアントコンピューターからActive Directoryドメインにログオンするとき、
ドメインコントローラーと正しく通信することができないと、
クライアントコンピュータにあるキャッシュ情報を利用してログオンします。
これを一般に「キャッシュされたログオン」などと呼んでいます。
ドメインコントローラーに接続できない状況でもログオンできるという点においては
とても便利なのですが、ドメインコントローラーに接続できていないことを
意識させないので、それゆえ「グループポリシーが更新されない」とか、
「サーバーにアクセスできない」とか、後から色々なトラブルが発生します。
(ネットワークがつながっていないのだから、当たり前なのですが。。)
そこで、今回は自分がキャッシュされたログオンをしているか、
確認する方法について見てみたいと思います。
■その1 – イベントビューアのセキュリティログを参照する
セキュリティログのログオンイベント(イベントID4624)で
ログオンタイプが11のものがあれば、それはキャッシュログオンしています。
実際のログにはこんな感じで記録されます。
ちなみに、イベントビューアのフィルタ機能で
キャッシュされたログオンだけを表示させたい場合は、XPathで指定します。
具体的な方法については、
「イベントビューアのクエリをカスタマイズする(2)」 を参考にしてください。
■その2 – kilistコマンド
klistコマンドとは、Kerberosログオンを行ったときに発行されたチケットを
参照するために使うコマンドで、Windows Server2008からOS標準コマンドになっています。
(その前のバージョンのOSの場合、リソースキットツールをインストールすると使えます)
ログオン時にドメインコントローラーと通信できていれば、チケットが正しく発行されますが、
そうでない場合にはチケットが発行できないですから、
結果的に、キャッシュされたログオンをしたか、確認できますね。
(下の図はキャッシュされたログオンを行ったときにklistコマンドを実行した様子)
あと、阿部さんのブログにもコメントさせていただいた、
whoami /upnですが、これはキャッシュされたログオンのときでも
表示される場合、表示されない場合がどうもあるようで、確認方法としては十分ではないみたいです。
(ということが、コメントさせていただいた後でわかりました。)
■その4 – setコマンド
昔読んだ、ある書籍に書いてあった方法なのですが、
setコマンドを実行して表示されるLOGONSERVER欄を参照すると
キャッシュされた場合と、そうでない場合で表示が異なるというものです。
しかし、最近のOS(Windows Vista/7)ではどうも反映されないようです。
キャッシュされたログオンの場合は、自分のコンピュータ名がLOGONSERVER欄に表示されるそうなのですが、
試してみたら、前回ログオンしたときにアクセスしたドメインコントローラーの名前が表示されてしまいました。
以上です。
色々な方法があるので、ご自身にとって便利な方法を選んでみてください。
(こんなやり方もあるよ、とか、それじゃダメじゃない?とか、ありましたら言ってください)