グループポリシーオブジェクト(GPO)をActive Directoryの組織単位(OU)に適用したことがあり、それが適用されているかどうかを確認したいことがありますか?その場合、gpresult
コマンドを理解する必要があります。
ADを930以上の万の危険にさらされたパスワードのスキャンします。パスワード関連の脆弱性を特定する、無料の読み取り専用ツールであるSpecops Password Auditorをダウンロードしてください。
このチュートリアルでは、ローカルおよびリモートのWindowsマシンでグループポリシー設定を確認するためにgpresult
コマンドを使用する方法について学びます。
さあ、始めましょう!
前提条件
このチュートリアルの例に従いたい場合は、以下のものが必要です:
- Active Directoryドメイン。どのバージョンでも構いません。このチュートリアルではHomeLab.Localというドメインを使用します。
- A domain-joined Windows PC with at least one GPO applied to it. If you’d like to learn how to invoke
gpresult
remotely, you’ll need a second domain-joined PC. This tutorial will use two Windows 10 computers called Win10VM1 and Win10VM2. - ローカルPCとリモートPCのローカル管理者権限。
GPResultは、Windowsに組み込まれたコマンドラインツールであり、ドメインに参加しているコンピューターに適用されるポリシーに関するレポートを生成します。
Active Directory管理者がOUにGPOを割り当てると、そのOU内のコンピューターまたはユーザーがそれらの設定を適用するためにチェックインします。対象のコンピューターがGPOを受信するタイミングがgpresult
の出番です。
各コンピュータがこれらの設定を実際に受信し適用する時間は、Group Policyの更新間隔に依存します。
gpresult
ユーティリティを使用して、これらの対象コンピュータでコマンドを実行し、適用されるはずのGPOを確認できます。
GPResultでヘルプを取得する
gpresult
は、他の多くのコマンドラインユーティリティと同様に、シンプルな組み込みヘルプシステムを備えています。このヘルプシステムを使用して、覚えにくいスイッチを簡単に見つけることができます。
gpresult
にスイッチを指定せずに実行すると、提供されるすべてのスイッチが表示されます。この投稿に戻ってきてパラメーターの動作が気になるときには、組み込みのヘルプが存在することを覚えておいてください!

ポリシーの実行結果を取得
gpresult
をパラメーターなしで実行すると、ヘルプ情報のみが表示されます。情報を取得するにはそれが必要です!まず最初に、/r
スイッチまたはポリシーの実行結果の動作について説明します。
ポリシーの結果セット(RSOP)は、グループポリシーのさまざまな側面をクエリするためのグループポリシーアドオンです。RSOPは、コンピューターに割り当てられたポリシーの結果を発見するための優れた方法です。
GPResult
は、ポリシー設定(ユーザーおよびコンピューターOUパス、ドメイン名、ADグループメンバーシップ、セキュリティ設定、およびユーザーおよびコンピューターの適用されたGPOなど)を含むロギングモードでRSOPデータを表示します。
gpresult
を使用してRSOPデータをクエリするには、cmd.exeまたはPowerShellを管理者として開き、以下に示すように/r
スイッチとともにgpresult
を呼び出します。
以下では、gpresult
が、特定のコンピューター(コンピューターの設定)およびそのコンピューターにログオンするすべてのユーザーを対象とするGPO(ユーザーの設定)のすべてを返すことがわかります。
非管理者のコマンドプロンプトで
gpresult /R
を実行することはできますが、コマンドを実行しているユーザーに適用されるポリシーのみが表示されます。

詳細な適用済みグループポリシー情報の取得:Granular: Finding Detailed Applied Group Policy Info
特定のコンピュータまたはユーザーに適用されるGPOを単純に見つける必要がある場合、/r
スイッチから取得できるRSOPデータが使用できます。ただし、RSOPデータには限界があります。 RSOPデータには、ログオンスクリプトの最終実行時刻、GPOが作成されるレジストリキーなどの情報は含まれません。
gpresultが提供できる情報をできるだけ多く取得するには、以下に示すように/v
またはverboseスイッチを使用してください。
/v
が提供する情報をすべて確認してください。これは非常に多くの情報です!







/r
と/v
の違いを以下で確認してください。 /r
はGPO名のみを提供し、/v
はログオンスクリプトファイル名とスクリプトがコンピュータ上で最後に実行された時間を提供します。

gpresultのユーザーまたはコンピュータベースの設定の制限
上記のように、gpresult
はデフォルトでユーザーとコンピュータベースの設定の両方を返します。特に数百の設定を持つGPOを管理する場合、出力の量が多すぎる場合があります。
コンピュータまたはユーザーに適用される設定のみを探す必要がある場合、gpresult
を使用してクエリの範囲を制限することができます。 /scope
パラメータを使用して、computer
またはuser
を/scope
パラメータの引数として指定すると、gpresult
はすべてのユーザーまたはコンピュータに適用される設定のみを返します。
次のコマンドを実行して、computer
スコープのすべてのポリシーのRSOPデータを表示します。
すべてのユーザーの冗長モードのポリシーを見つける方法はどうですか?
他のスイッチ(
/r
や/v
など)と一緒に/scope
パラメータを使用して、コマンドの範囲を制限することができます。
管理者としてcmd.exeまたはPowerShellを実行し、GPResultを呼び出すと、すべてのユーザーのグループポリシー設定が返されます。 /scope user
スイッチを使用すると、コンピューターに基づいた設定は削除されますが、すべてのユーザーの設定は返されます。
同時にログオンしている単一のユーザーに設定を制限する必要がある場合は、/user
パラメータを使用して、引数として所望のユーザー名を指定します。
存在しないユーザーのRSOPデータをクエリしようとすると、GPResultはメッセージ
The user "<user>" does not have RSOP data
を返します。
GPResultの出力のエクスポート
コマンドラインコンソールに情報を返すだけでは十分ではないこともあります。おそらくレポートを作成したり、結果を他の形式で共有する必要があります。その場合、結果を他の形式にエクスポートする必要があります。
GPResultの出力をいくつかの異なる方法でエクスポートすることができます。
テキストファイルへの結果のエクスポート
ファイルへの結果のエクスポート方法の一つは、コマンドプロンプトまたはPowerShellの出力リダイレクション機能を使用することです。リダイレクション演算子>
に続いてテキストファイル名を指定することで、コンソールで表示される内容がそのままテキストファイルに含まれます。
以下のコマンドは、すべてのRSOPデータを返し、ファイルC:\Temp\RsopReport.txtを作成し、GPResultコマンドの全体の結果を含めます。
HTMLまたはXMLファイルへの結果のエクスポート
コマンドプロンプトからテキストファイルに直接リダイレクトするのとは異なり、適用されたポリシー情報をHTMLまたはXMLファイルに生成して保存することもできます。要求されたHTMLファイルのパスに続いて/H
スイッチ(HTML用)または/X
スイッチ(XML用)を使用すると、GPResultは見栄えの良いHTMLファイルを出力します。
ファイルがすでに存在する場合、GPResultはエラーを返します。既存のファイルを上書きするようにGPResultに強制するには、
/F
スイッチを使用します。
リモートでGPResultを実行する
このチュートリアルでは、GPResultをローカルで実行してきました。パラメータ/s
を使用すると、GPResultはリモートでも同じグループポリシー設定を取得して実行できます。
例えば、ユーザーuser01のRSOPデータを見つけるには、少なくとも一度はリモートwin10vm1コンピューターにログインしたユーザーの場合、次のように実行します:

おそらく、リモートコンピューターでグループポリシー情報をクエリする権限がないコンピューターにログインしています。その場合、GPResultは代替資格情報を指定しない限り失敗します。
次のように、/U
(ユーザー名)および/P
(パスワード)パラメーターを使用して代替資格情報を指定します。

Active Directoryに危険なパスワードが潜んでいませんか?Specops Password Auditorをダウンロードして、無料でパスワードの脆弱性をスキャンしてください!
結論
これで、GPResultコマンドを使用して、ローカルおよびリモートコンピューターの適用されたグループポリシー設定をクエリする方法がわかりました。この便利なコマンドは、どのActive Directory管理者の武器庫にもある素晴らしい発見およびトラブルシューティングツールです。
次に、「ドメインに参加したコンピューターが期待したGPOを適用したことを確認するにはどうすればよいですか?」と思ったとき、どのツールを使用しますか?