gpresult /r で、現在のコンピューターとサインインユーザーに適用されたグループポリシーのRSoP要約を確認できます。固定タイトルの先頭が欠けていますが、本記事が答える意図は「gpresult /rでコンピューターに適用されているGPOを確認する方法」です。ユーザー側だけが表示される、またはコンピューター側でアクセス拒否になる場合は、昇格したコマンドプロンプト/PowerShellでコンピュータースコープを明示します。
gpresultは読み取りツールです。結果を確認するために最初からgpupdate /force、OU移動、GPO編集、ドメイン再参加を行う必要はありません。まずユーザーとコンピューターのどちらを調べるかを決め、現状のRSoPを保存します。
ユーザー構成とコンピューター構成は別
Group Policyには、ユーザーオブジェクトへ適用されるUser Configurationと、端末オブジェクトへ適用されるComputer Configurationがあります。同じGPO名でも片側だけ設定されることがあり、ユーザーの通常コンソールで取得した結果にコンピューター側が出ないからといって、GPOが未適用とは限りません。
- ユーザースコープ:サインインユーザーのOU、セキュリティグループ、ループバック処理などを反映する。通常ユーザーでも自分の要約を読めることが多い。
- コンピュータースコープ:コンピューターアカウントのOU、セキュリティグループ、起動時/バックグラウンド処理を反映する。完全な取得にはローカル管理者として昇格が必要になる。
- リモート取得:対象端末へのネットワーク到達、ファイアウォール、権限が必要。資格情報をコマンド行の /p に平文で残さない。
基本のgpresult /r
まず現在ユーザーのコンソールで要約を取得します。結果の作成日時、対象ユーザー、対象コンピューターが意図したものかを先に見ます。別ユーザーで実行した結果や管理者の別セッションを、問題ユーザーの結果として扱わないでください。
gpresult /r
/scope を省略した場合、公式構文上はユーザーとコンピューター両方のRSoPが対象です。ただし権限や利用可能なRSoPデータにより片側だけになることがあります。コンピューター設定が必要なら、Windows Terminal、コマンドプロンプト、PowerShellを「管理者として実行」して次を使います。
gpresult /r /scope computer
ユーザー側だけを明示する場合は gpresult /r /scope user です。/r は要約で、設定値の細部や優先順位をすべて表示する形式ではありません。対象GPOの存在、除外理由、最終適用時刻、適用元DCを短時間で確認する入口として使います。
期待する見出しと読み方
日本語版では概ね「コンピューター設定」「ユーザー設定」の区画があり、その中に「適用されたグループ ポリシー オブジェクト」「次のGPOはフィルターで除外されたため適用されませんでした」「システム/ユーザーは次のセキュリティグループの一部です」などが表示されます。英語版ではCOMPUTER SETTINGS、USER SETTINGS、Applied Group Policy Objects、The following GPOs were not applied because they were filtered outに相当します。
- 前回のグループポリシー適用時刻:問題発生時刻より古ければ、ネットワーク、起動、サインイン、更新周期を確認する。
- グループポリシーの適用元:意図したドメインコントローラーか。複製遅延が疑われるときの手掛かりになる。
- 適用されたGPO:名前があることは、GPO内の全設定が有効という意味ではない。該当設定のスコープ、競合、優先順位は詳細レポートで確認する。
- 除外されたGPO:未適用(空)、セキュリティフィルター、WMIフィルターなどの理由を確認し、まず対象オブジェクトと委任を照合する。
- セキュリティグループ:RSoP作成時点のメンバーシップ。VPNやサインイン時DC不在では表示情報が古い可能性も考慮する。
HTML詳細レポートを保存する
設定値、Winning GPO、優先順位を読みやすく残すには /h を使います。/h と /r は同時指定できないため、別コマンドです。既存ファイルを上書きするときだけ /f を付け、アクセス権を限定したローカルフォルダーへ保存します。
New-Item -ItemType Directory -Path C:\GpReports -ErrorAction SilentlyContinue
gpresult /h C:\GpReports\gpresult.html /f
レポートにはユーザー名、端末名、ドメイン、グループ、GPO名など管理情報が含まれます。外部共有サイトへ置かず、支援チケットのアクセス権と保存期限を決めます。ARM64版Windowsでは公式注意により /h はSysWOW64側のgpresultだけが動作するため、HTML生成失敗時にアーキテクチャも確認します。
アクセス拒否の扱い
- 対象端末へ対話ログオンし、コマンドプロンプトまたはPowerShellを右クリックして「管理者として実行」する。ウィンドウタイトルと
whoamiで実行コンテキストを確認する。 gpresult /r /scope computerを再実行する。通常ユーザーの結果と混ぜない。- ローカルでも拒否される場合、ローカルAdministrators所属、UAC昇格、Group Policy Client/WMIの状態、Microsoft-Windows-GroupPolicy/Operationalログを読み取る。サービス再構成は診断後に行う。
- リモート対象なら、対象コンピューターへの到達、必要なファイアウォール、Group Policy Resultsの委任または対象端末のローカル管理権限を確認する。
- 権限不足を解消するためDomain Adminsへ恒久追加せず、GPMCの「Remotely access Group Policy Results data」など目的に合う委任を使う。
出力先が保護フォルダー、既存HTMLが別ユーザー所有、ファイルがブラウザーで開かれている場合も /h は失敗します。まず新しいローカルフォルダーと新しいファイル名を使い、RSoP取得権限の問題とファイル書込権限の問題を分けます。
RSoPの限界
gpresult は適用されたGroup PolicyのResultant Set of Policyであり、端末の全構成を監査する万能ツールではありません。IntuneなどMDM、ローカルスクリプト、アプリ独自設定、レジストリを直接変更した値、未処理の新しいGPOは別経路で確認します。/r は要約なので、設定単位の証拠は /h、必要に応じて /v または /z を使います。
RSoP MMC(rsop.msc)はMicrosoft公式の注意どおりWindows Vista SP1以降すべてのMicrosoft Group Policy設定を表示しません。完全な適用結果の確認ではgpresultを優先します。またGroup Policy Modelingは将来シナリオのシミュレーションでローカルGPOを評価しないため、実端末から取るGroup Policy Resultsと同一ではありません。
変更を伴わない確認手順
- 昇格していない状態の
gpresult /rを保存し、ユーザー側の対象と時刻を記録する。 - 昇格した状態で
gpresult /r /scope computerを保存し、コンピューター側の適用GPOと除外理由を記録する。 gpresult /hを新しいファイル名で生成し、SummaryとSettings、Winning GPOを確認する。- GPMCのリンク、OU、セキュリティフィルター、WMIフィルターと読み取り結果を照合する。まだGPOは編集しない。
- 再サインインや通常の更新周期後に同じコマンドを再取得し、対象・時刻・GPO名の差だけを比較する。
これらは読み取りまたはレポート生成だけなので、OSやGPOの設定を変更しません。検証後のロールバック作業も不要です。作成したHTML/テキストを運用証跡として残さない場合は、チケット完了後に承認済みの情報保持手順で破棄します。もし診断後にGPOを修正するなら、修正前バックアップ、対象OU限定、パイロット、同じgpresult比較を別の変更計画として実施します。

コメント