ユーザーが離席しているときにWindowsマシンの画面を自動的にロックすることは、セキュリティ上ほぼ必須ですが、デフォルトの設定では不十分だったり、無視されたりすることもあります。「非アクティブ時にロックする」機能は、ドメイン全体で有効にしたり、一貫性を維持したりするのが面倒な場合があります。そこで、実際に効果があり、場合によっては救世主となる、実用的かつ効果的なアプローチをご紹介します。グループポリシー経由で設定できます。少数のマシンをロックする場合でも、エンタープライズ環境で数百台のマシンを一括してロックする場合でも、この設定は可能です。グループポリシー管理コンソール(gpmc.msc)を操作して設定する必要があるので、準備しておいてください。
Windowsのグループポリシーを使用して画面ロックを修正または改善する方法
グループポリシーを使用して Windows のロック画面設定を構成する
この方法は、一定時間操作がないとマシンを強制的にロックするものです。ユーザーがショートカットをクリックしたり、キーを押すことを覚えていたりするWin + L手間はかかりません。特に、ユーザーがロック機能を忘れたり、意図的にスヌーズしたりする可能性のあるリモートデスクトップやマシンで便利です。GPOを調整することで、Windowsに自動的にロックをかけるように指示できます。なぜこれが役立つのでしょうか?それは、ローカルポリシーやユーザー固有のポリシーを上書きし、マシン全体で一貫したセキュリティを実現できるからです。
これを設定する際、重要なのはレジストリキーInactivityTimeoutSecs(HKLMディレクトリ配下)です。このキーは、ロックするまでの時間を制御します。0に設定されている場合、この機能は無効になりますので、必ず時間を指定してください。私は通常、300秒(5分)程度に設定しています。ポリシー適用後、gpupdate /force変更を反映させるには、マシンを再起動するか、強制終了する必要があることに注意してください。
- グループ ポリシー管理コンソール( )を開き
gpmc.msc、新しい GPO ( LockScreenPolicyなどの名前) を作成し、それをロックが必要なドメインまたは特定の組織単位 (OU) にリンクします。 - [コンピューターの構成] > [ポリシー] > [Windows の設定] > [セキュリティの設定] > [ローカル ポリシー] > [セキュリティ オプション]に移動します。
- 「対話型ログオン:マシンの非アクティブ時間の制限」というポリシーを見つけます。必要な秒数(例えば
3005分)に設定します。この設定により、レジストリ値InactivityTimeoutSecsが変更されます。 - 管理者特権のコマンドプロンプトまたはPowerShellを使用して、クライアントマシンのポリシーを強制的に更新します
gpupdate /force。その後、アイドル時に自動的にロックされるようになります。
補足:特定のコンピュータのロックを防止したい場合は、セキュリティグループ(例:NoLockComputers)を作成し、対象のデバイスを追加してから、GPOセキュリティフィルタリングを使用してそのグループへの適用を拒否することができます。重要なマシンや特殊用途のマシンのロックを解除するには、これが最も簡単な方法となる場合があります。
パスワード保護されたスクリーンセーバーをバックアップとして有効にする
もう一つの方法は、Windowsのスクリーンセーバー設定を使うことです。ロック画面とタイムアウトを設定してオンにしておくと、ユーザーが離れた場合でもセッションがすぐに保護されます。この方法のメリットは、ユーザー固有のポリシーや設定に柔軟に対応できるため、環境によってはより柔軟に対応できることです。さらに、ドメインに常時接続されていないモバイルデバイスやノートパソコンにも適しています。
- グループ ポリシー管理コンソールで、適切な OU にリンクされた GPO を作成または編集します。
- [ユーザーの構成] > [ポリシー] > [管理用テンプレート] > [コントロール パネル] > [個人設定]で。
- 以下を設定します。
- スクリーンセーバーを有効にする– オンにします。
- スクリーン セーバーをパスワードで保護します。これをオンにすると、後でパスワードが要求されます。
- スクリーンセーバーのタイムアウト— 300秒(またはお好みのロック時間)に設定してください。ただし、設定が短すぎると煩わしく、長すぎるとセキュリティが不十分になる可能性があるので注意してください。
- 特定のスクリーンセーバーを強制する— のようなスクリーンセーバーを選択します
scrnsave.scr。GPOでこれを指定することで、ユーザーが変更できなくなります。 - スクリーン セーバーの変更を防止します。ユーザーがスクリーン セーバーを無効にしたり、別のセーバーを選択したりできないようにロックします。
- ポリシーを適用し、実行して
gpupdate /forceすぐにプッシュアウトします。
設定が完了すると、設定されたタイムアウト後にユーザーがマシンを起動しようとした際にパスワードの入力を求められます。複数のユーザーグループを管理していて、異なるタイミングやルールが必要な場合は、ScreenSaverIsSecure(1に設定)、ScreenSaveTimeout(300に設定)、SCRNSAVE. EXEなどのレジストリ値を調整することもできます。レジストリ編集の詳細については、Microsoftのドキュメントをご覧ください。
レジストリ設定に精通している方は、レジストリ設定をアイテムレベルでターゲット設定することで、特定のグループをロックから除外するポリシーを作成できます。これにより、生産ラインや高可用性システムへの再認証なしでのアクセスが可能になります。もちろん、Windows では状況によって設定を複雑にする必要があるため、特に GPO とレジストリの調整を混在させる場合は、何度か試行錯誤する必要があることをご承知おきください。
結局のところ、ドメイン全体のGPOであれ、ユーザー固有のスクリーンセーバーポリシーであれ、アイドル時にセッションをロックダウンすることは単なるバッジではなく、真のセキュリティ強化につながります。煩わしいと感じる人もいるかもしれませんが、何もせずに放置するよりはましですよね?
まとめ
- GPO を使用して、自動ロックの「対話型ログオン: マシンの非アクティブ制限」を設定します。
- ユーザー ポリシーのパスワード保護とタイムアウトを備えたスクリーンセーバーを構成します。
- セキュリティ グループとセキュリティ フィルタリングを使用して、特定のマシンのロックを拒否します。
gpupdate /force変更を有効にするには、変更後に実行または再起動してください。- レジストリの調整を活用して、グループ固有の高度なロック ルールを作成します。
まとめ
このアプローチはドメイン全体とユーザー固有のロックの両方に対応しているため、数百台のデバイスのセキュリティを強化したい場合でも、特定のグループ向けに微調整したい場合でも、実現可能です。Windowsはポリシーの更新やレジストリの変更に関して不安定なため、すべてが正しく機能するまでに何度か試行錯誤する必要があるのは奇妙に感じるかもしれません。しかし、一度設定すれば、ほとんどのマシンは設定された非アクティブ時間後に正常にロックされるはずです。この方法が、セキュリティポリシーの適用で頭を悩ませる誰かの助けになれば幸いです。