キャッシュされたログオン

 
来月、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 – kilistコマンド
klistコマンドとは、Kerberosログオンを行ったときに発行されたチケットを
参照するために使うコマンドで、Windows Server2008からOS標準コマンドになっています。
(その前のバージョンのOSの場合、リソースキットツールをインストールすると使えます)
ログオン時にドメインコントローラーと通信できていれば、チケットが正しく発行されますが、
そうでない場合にはチケットが発行できないですから、
結果的に、キャッシュされたログオンをしたか、確認できますね。
(下の図はキャッシュされたログオンを行ったときにklistコマンドを実行した様子)

 
 
 
■その3 – whoamiコマンド
whoamiコマンドとは、自分が誰ユーザーでログオンしているかを確認するときに
使えるコマンドで、トークンの内容を参照できます。
コマンドには色々なオプションがあって、その中のひとつに
whoami /fqdnというのがあります。
これはログオンしたユーザーのDNを表示するコマンドで、
ドメインコントローラーに接続できている状態なら、
cn=kunii,ou=Lab,dc=example,dc=com
のように結果を返してくれます。
ところが、キャッシュされたログオンだと
ドメインコントローラーにアクセスできないですから、表示されないですね。
(下の図はキャッシュされたログオンを行ったときにwhoamiコマンドを実行した様子)

 
 
あと、阿部さんのブログにもコメントさせていただいた、
whoami /upnですが、これはキャッシュされたログオンのときでも
表示される場合、表示されない場合がどうもあるようで、確認方法としては十分ではないみたいです。
(ということが、コメントさせていただいた後でわかりました。)
 
■その4 – setコマンド
昔読んだ、ある書籍に書いてあった方法なのですが、
setコマンドを実行して表示されるLOGONSERVER欄を参照すると

キャッシュされた場合と、そうでない場合で表示が異なるというものです。
しかし、最近のOS(Windows Vista/7)ではどうも反映されないようです。
キャッシュされたログオンの場合は、自分のコンピュータ名がLOGONSERVER欄に表示されるそうなのですが、
試してみたら、前回ログオンしたときにアクセスしたドメインコントローラーの名前が表示されてしまいました。
 
 
 
以上です。
色々な方法があるので、ご自身にとって便利な方法を選んでみてください。
(こんなやり方もあるよ、とか、それじゃダメじゃない?とか、ありましたら言ってください)