Q
Update

Windows XP/2000/NTのログオン画面には,標準で前回ログオンしたユーザー名が表示されています。このままではパスワードさえ分かれば,簡単に利用されてしまわないかと心配です。セキュリティの強化を求める声が社内で高まってきたこともあり,パスワードだけでなくユーザー名もきちんと入力しないとログオンできないようにしたいのですが,どうしたらいいのでしょう?

Updateは,過去にこの連載で掲載したQ&Aを新しいプラットフォームで検証したものです。

A

Windows 2000/XPではコントロール・パネルの管理ツールにあるローカル・セキュリティ・ポリシーでユーザー名を表示させない設定が可能です。

 このメニューを選ぶと[ローカルセキュリティ設定]という画面が起動するので,ここで[ローカルポリシー]-[セキュリティオプション]を開くと,その中に[対話型ログオン:最後のユーザー名を表示しない]という項目があります(図1)。標準では[無効]になっている,この項目を[有効]に変更すればログオン画面にユーザー名が表示されなくなります。


図1●Windows XP/2000ではローカル・セキュリティ・ポリシーで[対話型ログオン:最後のユーザー名を表示しない]を有効にすれば,ログオン画面に前回のユーザー名が表示されなくなる

 Windows NTマシンの場合は,管理ツールにあるシステム・ポリシー・エディタを使います。システム・ポリシー・エディタを起動して,[ファイル]-[レジストリを開く]で[ローカルコンピュータ]を選び,その中の[Windows NTシステム]-[ログオン]を開けば[最後にログオンしたユーザ名を表示しない]という項目があるので,そこをチェックすればユーザー名が表示されなくなります。

 これらのローカル・セキュリティ・ポリシーやシステム・ポリシー・エディタを使った設定は,いずれもレジストリに記録されます。具体的には,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\WinlogonにあるDontDisplayLastUserNameという名前のREG_SZ値として1を設定しています。レジストリ・エディタで,この値を直接作成または編集しても同じことが実現できます。


△ 図をクリックすると拡大されます
図2●Active Directory環境ならばグループ・ポリシーで所属する全マシンに対して,前回のユーザー名を表示しないように設定できる

ドメインでは全マシンに適用可能
 この設定を,基本的にユーザー名を表示させたくないマシン上で実行すればいいことになりますが,数が多いと面倒です。ドメイン環境で使っている場合は,所属するマシンすべてに対し一括して設定する機能があります。それを利用するとよいでしょう。

 Active Directoryドメイン環境で利用している場合は,ユーザー名を表示させたくないマシンが所属するOU(組織単位)に対するグループ・ポリシー・オブジェクト(GPO)として設定します。具体的には,OUのプロパティ画面にある[グループポリシー]のタブ画面で[追加]ボタンをクリックし新しいGPOを作成してから編集画面を呼び出します(図2)。その画面で,[コンピュータの設定]-[Windowsの設定]-[セキュリティの設定]-[ローカルポリシー]-[セキュリティオプション]を開いてください。ローカル・セキュリティ・ポリシーと同じ[対話型ログオン:最後のユーザー名を表示しない]という項目があるので,これを[有効]にすればOUに所属する全マシンに設定が適用されます。

 Windows NTドメインを使っている場合は,先ほどのシステム・ポリシー・エディタで[既定のコンピュータ]を開き,ローカルで設定する場合と同様に[最後にログオンしたユーザ名を表示しない]をチェックしてから,ntconfig.polというファイル名でドメイン・コントローラの\WINNT\system32\Repl\Import\Scriptsフォルダに保存すれば,やはり所属する全マシンに設定を適用できます。

 システム・ポリシーの設定はActive Directoryドメインに所属するWindows NTマシンでも有効です。逆に,GPOを設定してもActive Directoryドメインに所属するWindows NTマシンには設定が反映されません。Windows 2000/XPとWindows NTマシンが混在するドメインでは,GPOとシステム・ポリシーの両方を設定する必要があります。

編集部