ドメイン環境において、ネットワークに接続していなくてもクライアントコンピューターにログオンできます。それはキャッシュされたログオン情報を使用してのログオンとなります。この話は以前からあり、最新OSであるWindows7でも同様です。
この仕組みとしてはレジストリに記載されている情報を使用します。
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrent VersionWinlogon
値の名 : CachedLogonsCount
データ タイプ: REG_SZ
値 : 0 – 50
デフォルト値は10になっています。
これは10個のログオン情報を記憶するということで、ログオン回数とは関係ありません。
ちなみにWindows Server 2008では25に変更されましたが、Windows Server 2008 R2では、またもとの値の10に変更されました。
GPOでも変更できます
コンピュータの構成Windows の設定セキュリティの設定ローカル ポリシーセキュリティ オプション対話型ログオン : ドメイン コントローラが利用できない場合に使用する、前回ログオンのキャッシュ数
から設定を行います。
ここでの考察ですが、ドメイン環境で使用しているのであればキャッシュは使われたくないというニーズは必ずあります。そのような場合はこのレジストリを変更すれば対応できます。
しかし、組織においてノートPCを使用していて外部で使用する際にはネットワークに接続していない環境でPCにログオンしなくてはなりません。その際にドメインアカウントではなくローカルアカウントの使用をしなくてはならないのがネックになりますね。また、アカウントを変更するということは、ドメインで使用しているユーザープロファイルと、ローカルで使用するユーザープロファイルの使い分けをしなくてはならないのが現状です。たとえば、ノートPCをドメイン環境でも使用している状態で、外部からVPN接続をして使うという状況もあります。その際にプロファイルが異なっていると何かと不便ですね。端的な例だとメール(Outlookなど)など情報がプロファイルに記入されるものは特に不便です。
こんなことからやはりキャッシュされたログオンは必要なのかな?なんて思う今日この頃です。
まだ調べきれてない情報として、現在キャッシュされたログオンなのか?そうではないのか?の簡単な判別方法があるのかです。
SETコマンドを使用すれば、現在接続しているlogonserverが判りますが、キャッシュされたログオンでも同じ情報が出てくるのでこれではだめですね~
net user <アカウント名>の最終ログオン日時を見たのですが、なぜか更新されていない。なんでだろう・・・・
コメント
> 現在キャッシュされたログオンなのか?そうではないのか?の簡単な判別方法サーバーサイドだとイベントビューアから参照する方法がありますよ。クライアントサイドなら、whoami /upnを実行したときにキャッシュログオンだとエラーになるので、そこで確認できるようです(たぶん)。
ふむふむ、whoami /upn でエラーならキャッシュログオンか~なるほど、勉強になります