GPResultコマンドで適用済みGPOとRSoPデータを確認・診断する完全ガイド
GPResult.exeは、Active Directoryドメイン内のユーザーおよびコンピューターに適用されているポリシーの結果セット(RSoP: Resultant Set of Policy)を取得するためのコマンドラインツールです。GPResultを使用すると、コンピューターとユーザーに適用されているドメインポリシー(GPO)の一覧、ポリシー設定内容、GPOの処理時間やエラーなどを表示できます。Windows環境におけるグループポリシーの設定分析やトラブルシューティングには、最も広く使われている管理者向けツールです。
本記事では、GPResultコマンドを使用して、Active Directoryドメイン内のWindowsに適用されたグループポリシー設定を診断・デバッグ・分析する方法を詳しく解説します。
GPResult(GPResult.exe)コマンドの基本的な使い方
GPResultコマンドは、グループポリシーの適用状況を確認したい対象のコンピューター上で実行する必要があります。GPResultの構文は以下のとおりです。
GPRESULT [/S system [/U username [/P [password]]]] [/SCOPE scope] [/USER targetusername] [/R | /V | /Z] [(/X | /H) <filename> [/F]]
特定のユーザーまたはコンピューターに適用されているグループポリシーの詳細情報や、GPOインフラストラクチャに関連するその他の設定(結果的なポリシー設定、RSoP)を確認するには、コマンドプロンプトを開いて以下のコマンドを実行します。
Gpresult /r
このコマンドの出力結果は、大きく2つのセクションに分かれています。
- COMPUTER SETTINGS(コンピューターの設定):Active Directoryオブジェクトとしてのコンピューターに適用されたGPOに関する情報が含まれます。
- USER SETTINGS(ユーザーの設定):ADユーザーアカウントに適用されたポリシーに関するセクションです。
管理者が注目すべきGPResult出力の主な項目を簡単に説明します。
- Site Name(サイト名):コンピューターが属するADサイトの名前。
- CN:RSoPデータが生成されたユーザー/コンピューターの完全な正規名。
- Last time Group Policy was applied(グループポリシーの最終適用時刻):グループポリシー設定が最後に適用(更新)された日時。
- Group Policy was applied from(ポリシーの適用元):最新のGPOバージョンをダウンロードしたドメインコントローラーの名前。
- Domain Name / Domain Type(ドメイン名とドメインの種類):Active Directoryドメインスキーマの名前とバージョン番号。
- Applied Group Policy Objects(適用されたグループポリシーオブジェクト):適用されているGPOの一覧。
- The following GPOs were not applied because they were filtered out(フィルターにより適用されなかったGPO):何らかの理由で適用されなかったGPOの一覧。
- The user is a part of the following security groups(ユーザーが所属するセキュリティグループ):ユーザーがメンバーとなっているドメインのセキュリティグループの一覧。
例として、あるユーザーオブジェクトに以下の4つのグループポリシーが適用されているケースを見てみましょう。
- Disable Cached Credentials(キャッシュされた資格情報の無効化)
- DNS Suffix Search List(DNSサフィックス検索一覧)
- Enable Windows Firewall(Windowsファイアウォールの有効化)
- Default Domain Policy(既定のドメインポリシー)
また、レポートにはローカルグループポリシーエディター(gpedit.msc)で構成されたローカルポリシー設定の情報も含まれます。
ユーザーポリシーとコンピューターポリシーの切り替え(/scopeオプション)
/scopeオプションを使用すると、ユーザーポリシーのみ、またはコンピューターポリシーのみを表示できます。
ユーザーポリシーのみを表示する場合:
gpresult /r /scope:user
コンピューターポリシーのみを表示する場合:
gpresult /r /scope:computer
なお、管理者権限のないユーザーアカウントでコンピューターオブジェクトに適用されたGPOの一覧を取得しようとすると、gpresultコマンドはアクセス拒否エラーを返します。
ERROR: Access Denied.
結果のクリップボードやファイルへの出力
RSoPデータの解析や分析を効率化するために、Gpresultの結果をクリップボードにリダイレクトできます。
Gpresult /r |clip
テキストファイルに保存する場合は以下のようにします。
Gpresult /r > c:\ps\gpresult.txt
より詳細なRSoP情報を表示するには、/zスイッチを追加します。
Gpresult /r /z
例えば、スクリーンショットではコンピューターに適用されているドメインのパスワードポリシー設定が確認できます。
GPResultでRSoPレポートをHTML形式でエクスポートする
GPResultは、適用された結果的なポリシーに関するHTMLレポートを生成できます(Windows 7以降で利用可能)。このレポートには、グループポリシーによって設定されたすべてのシステム設定の詳細と、それらを設定したGPOの名前が含まれています。gpresultのHTMLレポートは、グループポリシー管理コンソール(gpmc.msc)の「設定」タブと構造的に類似しています。
RSoPのHTMLレポートを生成するには、以下のgpresultコマンドを使用します。
GPResult /h c:\PS\gpo-report.html /f
HTMLファイルへの完全なパスを指定しない場合、gpresultのHTMLレポートは%WINDIR%\system32フォルダーに保存される点に注意してください。
レポートを生成して自動的にブラウザーで開くには、次のコマンドを実行します。
GPResult /h GPResult.html & GPResult.html
gpresultのHTMLレポートには非常に有用な情報が多く含まれています。GPO適用時のエラーや、特定のポリシーおよびCSE(クライアント側拡張)の処理時間(ミリ秒単位)を「Computer Details(コンピューターの詳細)→ Component Status(コンポーネントの状態)」セクションで確認できます。GPOの処理に時間がかかる原因を特定する際に特に役立ちます。
例えば、スクリーンショットでは「パスワードの履歴を記録する」ポリシーが「24 回記録する」という設定で、Default Domain Policyによって適用されていることが「Winning GPO(優先されたGPO)」列から確認できます。
HTMLレポートを利用すれば、コンピューターに適用されたGPOの結果セットを、視覚的に分かりやすいグラフィカルな形式で確認できます。
GPResultでリモートコンピューターからRSoPデータを取得する
GPResultは、リモートデバイスにローカルログオンしたりRDP接続したりすることなく、リモートコンピューターからポリシーの結果セットを取得することもできます。
GPResult /s remote-pc-name1 /r
gpresultのオプションでユーザー名とパスワードを指定して、リモートコンピューターに接続することも可能です。
gpresult /R /S wks2b21c /scope user /U corp\jsmith /P myPaSSw0rd1!
パスワードをPowerShellのコマンド履歴に残したくない場合は、パスワードを対話的に入力するようプロンプトを表示できます。
gpresult /R /S wks2b21c /scope user /U corp\jsmith /P
同様の方法で、ユーザーポリシーとコンピューターポリシーの両方のデータをリモートで収集できます。
リモートコンピューターにログオンしているユーザー名が不明な場合は、次のコマンドでユーザー名を確認できます。
qwinsta /SERVER:wks2b21c
PowerShell(Get-GPResultantSetOfPolicy)を使ったRSoPレポートの取得
gpresultコマンドと同様のRSoP HTMLレポートは、PowerShellでも生成できます。リモートコンピューターから結果的なポリシーレポートを取得するには、GroupPolicyモジュールのGet-GPResultantSetOfPolicyコマンドレットを使用します。
Get-GPResultantSetOfPolicy -user jsmith -computer corp\wks2b21c -reporttype html -path c:\ps\gpo_rsop_report.html
GPResultで「ユーザーにRSoPデータがありません」と表示される場合の対処法
UAC(ユーザーアカウント制御)が有効な環境でGPResultを昇格されていない状態で実行すると、グループポリシーのユーザー設定セクションのみが表示されます。USER SETTINGSとCOMPUTER SETTINGSの両方のセクションを表示するには、管理者権限でコマンドプロンプトを実行する必要があります。
また、現在のユーザーとは別のアカウントで昇格されたコマンドプロンプトを実行すると、「INFO: The user "domain\user" does not have RSOP data(ユーザー"domain\user"にはRSoPデータがありません)」という警告が表示されます。これは、GPResultがコマンドを実行したユーザーのデータを収集しようとするものの、そのユーザーがログオンしていないためRSoP情報が存在しないことが原因です。アクティブなセッションを持つユーザーのRSoP情報を収集するには、そのユーザーのアカウントを明示的に指定します。
gpresult /r /user:corp\edward
さらに、クライアント側の時刻(およびタイムゾーン)も確認してください。FSMOのPDC(プライマリドメインコントローラー)ロールを持つドメインコントローラーの時刻と一致している必要があります。
「フィルターにより適用されなかったGPO」セクションの見方
グループポリシーの適用状況をトラブルシューティングする際は、「The following GPOs were not applied because they were filtered out(フィルターにより適用されなかったGPO)」セクションに注目しましょう。このセクションには、何らかの理由でオブジェクトに適用されなかったGPOの一覧が表示されます。GPOが特定のActive Directoryオブジェクトに適用されない主な理由は以下のとおりです。
- Filtering: Not Applied (Empty)(フィルター: 適用されていない(空)):ポリシーが空であり、適用する設定が存在しない。
- Filtering: Denied (Unknown Reason)(フィルター: 拒否された(理由不明)):ユーザー/コンピューターに、このポリシーの読み取り/適用権限がない可能性があります。権限はグループポリシー管理コンソール(
gpmc.msc)の「セキュリティ」タブで構成できます。 - Filtering: Denied (Security)(フィルター: 拒否された(セキュリティ)):「グループポリシーの適用(Apply Group Policy)」で明示的な拒否が設定されているか、ADオブジェクトがGPOのセキュリティフィルターのグループ一覧に含まれていません。
GPOがADの特定の組織単位(OU)やオブジェクトに適用されるべきかどうかは、GPMCの「有効なアクセス許可」タブ(詳細設定 → 有効なアクセス)でも確認できます。
WindowsのRSoP(RSOP.msc)スナップインについて
かつては、適用されたグループポリシーを診断するためにグラフィカルコンソールRSOP.mscが使用されていました。このMMCスナップインを使うと、コンピューターとユーザーに適用された結果的なポリシー設定(ドメイン+ローカル)を、GPOエディターと似たグラフィカルな形式で確認できました。下のスクリーンショットのRSOP.mscコンソールでは、Windows Updateの設定がWSUS_SERVERSポリシーによって構成されていることが分かります。
ただし、最新のWindowsバージョンでは、RSOP.mscを使用して適用されたGPOを完全に分析することはできません。GPP(グループポリシー基本設定)などクライアント側拡張(CSE)を通じて適用された設定は表示されず、検索機能もなく、診断情報も限られています。Windows 10や11でrsop.mscを実行すると、完全なGPOレポートを取得するにはgpresultを使用するよう促す警告が表示されます。
Starting with Vista, the Resultant Set of Policies (RSoP) report does not show all Microsoft Group Policy settings. To see the full set of Microsoft Group Policy settings applied for a computer or user, use the command-line tool gpresult.
本記事では、Windowsに適用された結果的なグループポリシーをGPResultコマンドで分析する方法を解説しました。ドメイン環境でGPOのトラブルシューティングを行う際は、「クライアントにグループポリシーが適用されない一般的な原因」に関するガイドも併せて参考にするとよいでしょう。
-
iPhone・iPadのデータ使用量を確認する方法と節約のコツ
毎月の通信量を見て「本当にこれだけ使った?」と疑問に思ったことはありませんか?近年は多くのキャリアが大容量プランや使い放題プランを提供していますが、依然としてデータ容量に上限のあるプランを利用している方も少なくありません。毎月の請求額が気になる方は、Appleデバイスなら標準機能だけでデータ使用量を確認できることを知っておくと安心です。 実は、iPhoneやiPadのデータ使用量の確認はとても簡単です。サードパーティ製アプリを使わなくても、すべてのデータ使用量をトラッキングできます。 この記事では、iPhoneとiPadでデータ使用量を確認する方法を詳しく解説します。iOS 12以降ではこの情
-
Androidでデータを消費しているアプリを特定する方法【Check Data Usage活用ガイド】
Androidスマートフォンで、あまり使っていないつもりなのにモバイルデータがすぐに足りなくなる——そんな経験はありませんか?これは、外出先でインターネットを利用する多くのユーザーが直面する共通の悩みです。原因のひとつは、一部のアプリがバックグラウンドでモバイルデータを消費していることに、ユーザー自身が気づいていないこと。だからこそ、Androidデバイスで最もデータを消費しているアプリを特定することが重要です。無料のサードパーティ製アプリ「Check Data Usage」なら、「どのアプリが一番データを消費しているのか?」という疑問にすぐ答えてくれます。 Systweak Software