このシナリオ ガイドでは、TroubleShootingScript (TSS) を使用してデータを収集し、ネットワーク ドライブをマップするグループ ポリシー オブジェクト (GPO) が想定どおりに適用されない問題のトラブルシューティングを行う方法について説明します。
トラブルシューティング ガイド
先に進む前に、 グループ ポリシーのトラブルシューティング ガイダンスを参照してください。
環境
- ドメイン名:
contoso.com
- Active Directory サイト: 4 つのサイト (サイトごとに 2 つのドメイン コントローラー) (Phoenix、London、Tokyo、および Mumbai)
- ドメイン コントローラーの数: 8
- ドメイン コントローラー オペレーティング システム: Windows Server 2019
- クライアント コンピューターのオペレーティング システム: Windows 11 バージョン 22H2
このシナリオの内容
トラブルシューティングを開始する前に、状況を理解し、問題の原因を絞り込むのに役立つスコーピングの質問をいくつか次に示します。
クライアントとサーバーのオペレーティング システムとは
回答: クライアント マシンは Windows 11 バージョン 22H2 であり、マップされたドライブが配置されているファイル サーバーは Linux サーバー上にあります。グループ ポリシーの基本設定を構成する方法
回答: Mapped-Drive という名前の GPO があり、この GPO はグループ ポリシーの基本設定でマップされたドライブ拡張機能を使用して構成されます。GPO Mapped-Drive のスコープ内のすべてのユーザーは影響を受けますか?
回答: この GPO を "IT ユーザー" 組織単位 (OU) に構成しました。 4 ~ 5 人のユーザーでテストしました。 それらすべてについて、ドライブ Z はマップされません。グループ ポリシーの基本設定を使用するのではなく、ドライブを手動でマップした場合はどうなりますか?
回答:net use
コマンドを使用して、ドライブ Z を同じファイル サーバーに正常にマップできます。この GPO は新しい GPO ですか、それとも以前に GPO が機能していましたか?
回答: この GPO は以前に動作しており、すべてのユーザーがマップされたドライブを取得するために使用されました。 この数日後、マップされたドライブは動作しません。gpresult /h
を実行して出力を確認すると、GPO Mapped-Drive が該当する一覧に含まれているかどうかが確認されます。
回答: はい。該当する一覧に Mapped-Drive GPO が適用されていることを確認します。セキュリティ フィルター、WMI フィルター、またはユーザーまたはグループの拒否 (適用) 設定を構成しましたか?
回答: GPO は既定の設定で設定されており、セキュリティ フィルター、WMI フィルター、または拒否アクセス許可の設定の観点から GPO に対する変更は行われません。
トラブルシューティング
まず、トラブルシューティングのために次のデータを収集します。 ログオンまたはサインインをトレースする必要があるため、ローカル管理者またはローカル管理者の資格情報を持つ他のユーザー アカウントとして、次のタスクを実行する必要があります。
Note
これらの手順では、高速なユーザー切り替えを有効にする必要があります。 ユーザーを切り替えようとしたときに問題が発生した場合は、次のポリシーまたはレジストリ値が設定されているかどうかを確認します。
- グループ ポリシー: Computer Configuration\Administrative Templates\System\Logon のグループ ポリシーの高速ユーザー切り替えのエントリ ポイントを非表示にします。
- レジストリ キー:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
。 - レジストリ値:
HideFastUserSwitching
TSSをダウンロードし、zip ファイルを C:\temp フォルダーに展開します。 フォルダーが存在しない場合は作成します。
管理者特権の PowerShell コマンドを開き、次のコマンドを実行します。
Set-ExecutionPolicy unrestricted
TSS Zip ファイルを抽出した c:\temp\TSS に移動します。
.\TSS.ps1 -Start -Scenario ADS_GPOEx -Procmon
を実行します。 契約に同意し、TSS がデータの収集を開始するまで待ちます。ユーザーを切り替え、ドライブ Z がマップされていないユーザー アカウントでサインインします。
サインインが成功したら、コマンド プロンプトを開き、
gpresult /h appliedgpo.htm
実行します。 GPO Mapped-Drive が該当する一覧にあることを確認します。ユーザーをもう一度切り替え、TSS ログを開始したユーザー アカウントでサインインします。 Y キーを押します。
TSS はデータの収集を停止し、収集されたデータは zip ファイルまたは TSS_<Machinename>_<Time>_ADS_GPOEx という名前のフォルダーとして C:\MSDATA フォルダーに配置されます。
TSS の詳細については、「 Introduction to TroubleShootingScript toolset (TSS)を参照してください。
データ分析
TSS がすべてのレポートを保存した c:\msdata フォルダーに移動し、ZIP ファイルの内容を抽出します。 <Client_machinename>-<Time>_Microsoft-Windows-GroupPolicy-Operational.evtx という名前のファイルを確認します。
開始イベント 4001
"Users" OU を示すイベント 5017
GPO Mapped-Drive は "Users" OU にリンクされています。
該当する GPO の一覧を示すイベント 5312
GPO Mapped-Drive が該当する一覧に含まれていることがわかります。
グループ ポリシー ドライブ マップ拡張機能が処理され、成功したことを示すイベント 4016
グループ ポリシー基本設定のトレース
グループ ポリシーの運用ログから、グループ ポリシーが処理され、グループ ポリシーの基本設定が正常に適用されたことを確認します。 上記に加えて、TSS ツールによって収集されたグループ ポリシーの基本設定のログ/トレースも確認できます。
グループ ポリシー基本設定トレースは、任意のグループ ポリシー基本設定クライアント側拡張機能に対して有効にできる追加のログ記録です。 TSS GPOEx トレースは既定で有効になっています。
Note
GPSVC ログを手動で有効にする場合は、RSAT を使用したグループ ポリシー基本設定デバッグ ログの有効化 に従。
ここでは、GPSVC ログを確認して検索し、グループ ポリシーがクライアントに正常に適用されたことを確認する方法について説明します。
<Clientmachinename>_<Date_Time>_GPPREF_User.txt では、GPP Mapped Drives 拡張機能が処理を開始していることを確認します。
Note
簡潔で読みやすくするために、分析には関連するトラブルシューティング データのスニペットのみが含まれており、ログ内のすべてのデータは含まれません。
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Entering ProcessGroupPolicyExDrives()
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] SOFTWARE\Policies\Microsoft\Windows\Group Policy\{5794DAFD-BE60-433f-88A2-1A31939AC01F}
グループ ポリシー マップドライブ拡張機能は、この拡張機能で構成されている GPO を識別し、名前は Mapped-Drive。
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] GPC : LDAP://CN=User,cn={6D6CECFD-C75A-43FA-8C32-0B5963E42C5B},cn=policies,cn=system,DC=contoso,DC=com
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] GPT : \\contoso.com\SysVol\contoso.com\Policies\{6D6CECFD-C75A-43FA-8C32-0B5963E42C5B}\User
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] GPO Display Name : Mapped-Drive
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] GPO Name : {6D6CECFD-C75A-43FA-8C32-0B5963E42C5B}
ドライブ Z が正常にマップされていることを確認します。
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Starting class <Drive> - Z:.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Policy is not flagged for removal.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Completed class <Drive> - Z:.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Completed class <Drives>.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] EVENT : The user 'Z:' preference item in the 'Mapped-Drive {6D6CECFD-C75A-43FA-8C32-0B5963E42C5B}' Group Policy Object applied successfully.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Completed class <Drive> - Z:.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Completed class <Drives>
procmon を使用してドライブ Z を取り外すプロセスを見つける
現時点では、グループ ポリシーの基本設定が適用されていますが、ドライブ Z は表示されません。 ドライブは手動でマップできますが、サインインまたはログオン中にドライブが削除されます。 そのため、ログオン中にコンピューター上のドライブ Z を削除する他の設定もあります。
次に、procmon トレースを分析して、マップされたドライブが削除された内容を観察する必要があります。 TSS ツールは、データの収集に使用した -Procmon
スイッチを使用して procmon トレースも収集します。
procmon トレースは圧倒的な可能性があります。 データを表示するフィルターを設定するには、次の手順に従います。 このフィルターを使用して、マップされたドライブに関連する問題のトラブルシューティングを行うことができます。
Clientmachinename>_<date_time>_Procmon_0.pml<ファイルを開きます。
Filter - Filter を選択します。
フィルター Detail - Contains - Z: を追加します。
フィルターの出力には、 cmd.exe と net.exeの 2 つのプロセスが表示されます。
net.exeダブルクリックし、次のパラメーターを含む Process タブに移動します。
- コマンド ライン: マップされたドライブの削除操作。
- 親 PID: net.exe の親プロセスは 13436 です。
- ユーザー: このプロセスが実行されたコンテキスト内のユーザーの名前。 この例では、ユーザー アカウント自体です。
次に、親プロセス フィルターを使用して net.exe を生成したユーザーを識別する別のフィルターを設定します。
Filter - Filter に移動し、Reset を選択します。
次に、親の PID を使用して次のフィルターを適用します。
PID が cmd.exeされ、次のパラメーターで GPO が処理されているようです。
- コマンド ライン:
C:\Windows\system32\cmd.exe /c "\contoso.com\SysVol\contoso.com\Policies{E347CA05-D21D-433D-9BCA-2FE555336749}\User\Scripts\Logon\deletedrives.bat"
- 親 PID: cmd.exe の親プロセスは 14900 です。
- ユーザー: このプロセスが実行されたコンテキスト内のユーザーの名前。 この例では、ユーザー自体です。
次に、同じメカニズムと PID フィルターをもう一度使用します。 Filter - Filter に移動し、 Reset を選択し、次のフィルターを適用します。
GPScrpit.exeがcmd.exe プロセスの親プロセスであることを確認します。 このヒントを使用して、マップされたドライブを削除したグループ ポリシー スクリプトがあることを確認します。
まとめ
Net.exe はマップされたドライブを削除しており、その親プロセスは cmd.exe。 次のコマンドが実行されます。
net use z: /delete
CMD.exe は.batファイル deletedrives.batを処理しており、その親プロセスは GPScript.exe。
C:\Windows\system32\cmd.exe /c "\contoso.com\SysVol\contoso.com\Policies{E347CA05-D21D-433D-9BCA-2FE555336749}\User\Scripts\Logon\deletedrives.bat"
GPScript.exe は、ログオン スクリプトを処理するためにログオン中に実行されるプロセスです。
このログオン スクリプトを含む GPO を識別する必要があります。 2 つの方法を次に示します。
方法 1: ログ収集中に収集された Gpresult /h 出力を使用する
方法 2: グループ ポリシー管理スナップイン (GPMC.msc) を使用する
スナップイン インストールされているドメイン コントローラーまたはコンピューターで GPMC.msc を開きます。
ドメインを右クリックし、[ 検索を選択します。
検索項目で GUID を選択し、 cmd.exeのコマンドで見つかった GPO GUID を入力します。
DomainWideSettings GPO でマップされたドライブを削除しない場合は、次のいずれかの方法を使用します。
- この GPO を使用して他のドメイン全体の設定を構成するため、GPO DomainWideSettings からログオン スクリプトを削除します。
- GPO DomainWideSettings のリンクを完全に解除します。
- ユーザー オブジェクトが配置されている "Users" OU に "ポリシーの継承をブロックする" を設定します。
- GPO DomainWideSettings の "ユーザー" グループに対して拒否 "GPO の適用" を設定します。