【問題解決】ログオン ポリシーが適用されない問題の切り分け

  • 2023年1月19日
  • 2023年6月8日
  • AD DS

Active Directory ドメイン サービスでは、管理機能の一つとして、ユーザーやコンピューター、アプリケーションにおけるシステム設定を一元的に管理・配布する仕組みが用意されています。これは「グループ ポリシー」と呼ばれる機能で実現しています。

グループ ポリシーでは、ドメイン内の端末で用意したスクリプトを自動で実行させることができます。スクリプト ポリシーの中で、ユーザーがログオンしたタイミングで、スクリプトを実行されるように構成するログオン ポリシーがあります。

今回は、ログオン スクリプトを設定したものの、想定通りにログオン スクリプトが動作しない場合に、問題の切り分けとして有効な設定について紹介します。

 

ログオン スクリプトが動作しない一般要因

グループ ポリシーにはスクリプト ポリシーという設定項目があり、ドメイン端末上でスクリプト ファイルを自動で実行させるポリシーを設定することができます。スクリプト ポリシーの中でも、ユーザーのログオン時に実行させるポリシーを「ログオン スクリプト」と呼びます。

ログオン スクリプトは、以下のポリシー パスで設定することができます。

[ユーザーの構成] – [ポリシー] – [Windows の設定] – [スクリプト(ログオン/ログオフ)] – [ログオン]
しかしながら、ドメイン コントローラー側で GPO でログオン スクリプトを設定したものの、ログオン スクリプトが実行されていない事象が確認されることがあります。

ドメイン環境によっては、ネットワークの接続にユーザー認証が必要となるネットワーク構成となっている場合があります。その場合、ユーザーのログオンのタイミングにおいて、ネットワークの初期化が完了されていないこともあります。ネットワークが確立できていないと、ドメイン コントローラーやファイル サーバーにアクセスできないため、GPO で設定したログオン スクリプトが取得できずに、ログオン スクリプトが正常に実行できないことが想定されます。

 

 

ログオン スクリプトの実行の処理は、ログオンしてからデスクトップ画面の表示にかかる時間や、コンピューターのパフォーマンスへの影響がでる可能性があります。そのため、ログオン スクリプトの実行による、コンピューターへの動作影響がでないように、スクリプトの実行が完了する前に処理を中断する動作も含まれています。

そのため、ログオン スクリプトの実行に影響する各設定を変更することで、ログオン スクリプトが実行された状態となることがあります。ログオン スクリプトが実行されない原因の切り分けとして、関連設定を変更することで、ログオン スクリプトが実行されるようになるか確認する方法が有効です。

ただし、問題の切り分けによる設定変更により、ドメインで管理する端末への動作影響がでることも想定されます。設定変更による影響も考慮した上で、切り分け作業を実施してください。

また、問題の切り分けにあたって、ログオン スクリプトの基本動作の理解があると有用です。ログオン スクリプトを含む基本的なスクリプト ポリシーの動作については、以下の記事で紹介していますので参考にしてください。

あわせて読みたい!

Active Directory ドメイン サービスでは、管理機能の一つとして、ユーザーやコンピューター、アプリケーションにおけるシステム設定を一元的に管理・配布する仕組みが用意されています。これは「グループ ポリシー」と呼ばれる機能で実現[…]

 

 

問題の切り分け設定

ログオン スクリプトの実行の動作に関連のある各種設定を変更することで、ログオン スクリプトが正常に実行されることがあります。

問題の切り分けとして、各種設定をそれぞれ実行して、ログオン スクリプトの実行に関して影響があるかご確認ください。

 

高速ログオンの無効化

Windows OS(クライアント OS)では、既定で高速ログオンが有効となっています。高速ログオンとは、グループ ポリシーの適用が完了することを待たずに、デスクトップ画面を表示させる設定とするポリシーです。

高速ログオンが有効になっていると、ドメイン コントローラーとのネットワーク接続の確立までに時間がかかっていても、グループ ポリシーの適用完了を待たずにログオンできます。高速ログオンを無効化すると、グループ ポリシーの適用が完了するまでデスクトップ画面が表示されません。そのため、ログオン スクリプトの実行の処理が完了してから、デスクトップ画面が表示されます。

高速ログオンを無効化する設定は以下の通りです。

ポリシー パス : [コンピューターの構成] – [ポリシー] – [管理用テンプレート] – [システム] – [ログオン]
ポリシー名: [コンピューターの起動およびログオンで常にネットワークを待つ]
設定値: 有効

上記の設定を行って高速ログオンを無効化すると、コンピューターの起動時とログオン時において、グループ ポリシーの適用処理は「同期モード」で行われます。同期モードとは、グループ ポリシーの適用処理とデスクトップ画面が表示処理の同期して処理されることです。そのため、「同期モード」で処理される場合、グループ ポリシーの適用処理が完了するまで、ログオン画面やデスクトップ画面が表示されません。

高速ログオンを無効化すると、ネットワークの問題などによりグループ ポリシーの適用処理が完了しない場合、ログオン画面もしくはデスクトップ画面が表示されるまでに時間がかかるという影響がでる可能性があります。

 

低速リンクの検出の無効化

Windows OS では、既定で低速リンクの検出を検出すると、グループ ポリシーの適用処理おいて一部のポリシーの適用の処理を適用しない機能が有効になっています。

Windows OS 端末が接続しているネットワークが、低速リンク(既定で 500 Kbps 未満)を検出した場合、グループ ポリシーの適用処理にかかる時間を削減するため、ログオン スクリプトやドライブ マップなどのポリシーの適用処理がスキップされます。そのため、低速なネットワーク環境に接続されている環境の場合、ログオン スクリプトは実行されない動作となります。

低速リンクの検出を無効化するポリシーは以下の通りです。

ポリシー パス: [コンピューターの構成/ユーザーの構成] – [管理用テンプレート] – [システム] – [グループ ポリシー]
ポリシー名: [グループ ポリシーの低速リンクの検出]
設定値: [有効]
接続速度: 0

上記の設定を行って低速リンクの検出を無効化すると、ネットワークが低速な状態でも、全てのグループ ポリシーの設定が適用されます。[グループ ポリシーの低速リンクの検出] のポリシーを有効にして、オプションの [接続速度] の設定値を 0 にすることで、低速リンクの検出を無効にできます。このポリシーを [無効] に設定すると、ポリシーが未構成の状態と同じという扱いとなり、既定の低速リンクの検出する動作となります。

低速リンクの検出を無効化すると、ネットワークが遅い状態でも、ネットワーク負荷がかかるポリシーの設定が適用される状態となります。そのため、グループ ポリシーの適用が完了するまでに時間や負荷がかかって、端末への動作に影響がでる可能性があります。

 

WaitForNetwork の設定

WaitForNetwork は Winlogon サービスが、Netlogon サービスが起動されるのを待つための設定となります。

Winlogon サービスは対話ログオンに関連する処理を担うサービスで、Netlogon サービスはドメイン メンバーとドメイン コントローラーの間でセキュア チャネルを確立する等のドメインの利用に必要な様々な機能の処理を担うサービスです。既定では、Winlogon は Netlogon サービスの起動は待ちません。

レジストリ WaitForNetwork を設定すると、Winlogon サービスが起動した時に、Netlogon サービスの起動を最大で 2 分間待つ動作となります。ログオン時にネットワークを待つ動作ではありません。

キー:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
型:REG_DWORD
値:WaitForNetwork
設定値:1

 

GpNetworkStartTimeoutPolicyValue の設定

コンピューター ポリシーの適用を最大 10 分間試行し、ポリシーの処理が完了するまでログオン画面を表示させないようにする設定となります。

ネットワーク接続が初期化されていない等の理由でドメイン コントローラーとの通信が取れない場合でも、最大 10 分間のポリシー適用を試行します。そのため、ログオン時においては、ドメイン コントローラーとの接続が確立されている状態となっている可能性が高くなります。

キー:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
型:REG_DWORD
値:GpNetworkStartTimeoutPolicyValue
設定値:タイムアウト値(秒)

※ GpNetworkStartTimeoutPolicyValue には、コンピューター ポリシーの適用を試行するタイムアウトの時間を設定してください。タイムアウトの設定値の単位は秒です。設定値として指定できる最大値は 600 です(=10 分)。また、ポリシーの適用のリトライの間隔は 2 秒で固定されています。

GpNetworkStartTimeoutPolicyValue を設定すると、ネットワークの接続状態によっては、コンピューターを起動してからログオン画面が表示されるまでに時間がかかる可能性があります。

 

 

楽天ブックス
¥3,630 (2023/06/08 11:21時点 | 楽天市場調べ)
楽天ブックス
¥4,400 (2023/06/08 11:24時点 | 楽天市場調べ)