GPResult ツールで適用された GPO を確認する方法

グループポリシーオブジェクト(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にスイッチを指定せずに実行すると、提供されるすべてのスイッチが表示されます。この投稿に戻ってきてパラメーターの動作が気になるときには、組み込みのヘルプが存在することを覚えておいてください!

Help information for gpresult command

ポリシーの実行結果を取得

gpresultをパラメーターなしで実行すると、ヘルプ情報のみが表示されます。情報を取得するにはそれが必要です!まず最初に、/rスイッチまたはポリシーの実行結果の動作について説明します。

ポリシーの結果セット(RSOP)は、グループポリシーのさまざまな側面をクエリするためのグループポリシーアドオンです。RSOPは、コンピューターに割り当てられたポリシーの結果を発見するための優れた方法です。

GPResultは、ポリシー設定(ユーザーおよびコンピューターOUパス、ドメイン名、ADグループメンバーシップ、セキュリティ設定、およびユーザーおよびコンピューターの適用されたGPOなど)を含むロギングモードでRSOPデータを表示します。

gpresultを使用してRSOPデータをクエリするには、cmd.exeまたはPowerShellを管理者として開き、以下に示すように/rスイッチとともにgpresultを呼び出します。

Gpresult /R

以下では、gpresultが、特定のコンピューター(コンピューターの設定)およびそのコンピューターにログオンするすべてのユーザーを対象とするGPO(ユーザーの設定)のすべてを返すことがわかります。

非管理者のコマンドプロンプトでgpresult /Rを実行することはできますが、コマンドを実行しているユーザーに適用されるポリシーのみが表示されます。

Displaying output for Gpresult /R command

詳細な適用済みグループポリシー情報の取得:Granular: Finding Detailed Applied Group Policy Info

特定のコンピュータまたはユーザーに適用されるGPOを単純に見つける必要がある場合、/rスイッチから取得できるRSOPデータが使用できます。ただし、RSOPデータには限界があります。 RSOPデータには、ログオンスクリプトの最終実行時刻、GPOが作成されるレジストリキーなどの情報は含まれません。

gpresultが提供できる情報をできるだけ多く取得するには、以下に示すように/vまたはverboseスイッチを使用してください。

Gpresult /V

/vが提供する情報をすべて確認してください。これは非常に多くの情報です!

Verifying GPOs applied on the computer
Password policies applied on the computer
Services disabled on the computer
Verifying Logon Scripts configured for user
Wallpaper set via user policy in GPO
Full registry key path for the policies
Verifying GPOs applied for user

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

Differences in /r and /v

gpresultのユーザーまたはコンピュータベースの設定の制限

上記のように、gpresultはデフォルトでユーザーとコンピュータベースの設定の両方を返します。特に数百の設定を持つGPOを管理する場合、出力の量が多すぎる場合があります。

コンピュータまたはユーザーに適用される設定のみを探す必要がある場合、gpresultを使用してクエリの範囲を制限することができます。 /scopeパラメータを使用して、computerまたはuser/scopeパラメータの引数として指定すると、gpresultはすべてのユーザーまたはコンピュータに適用される設定のみを返します。

次のコマンドを実行して、computerスコープのすべてのポリシーのRSOPデータを表示します。

Gpresult /R /Scope computer

すべてのユーザーの冗長モードのポリシーを見つける方法はどうですか?

Gpresult /V /Scope user

他のスイッチ(/r/vなど)と一緒に/scopeパラメータを使用して、コマンドの範囲を制限することができます。

管理者としてcmd.exeまたはPowerShellを実行し、GPResultを呼び出すと、すべてのユーザーのグループポリシー設定が返されます。 /scope userスイッチを使用すると、コンピューターに基づいた設定は削除されますが、すべてのユーザーの設定は返されます。

同時にログオンしている単一のユーザーに設定を制限する必要がある場合は、/userパラメータを使用して、引数として所望のユーザー名を指定します。

Gpresult /R /user user01

存在しないユーザーのRSOPデータをクエリしようとすると、GPResultはメッセージThe user "<user>" does not have RSOP dataを返します。

GPResultの出力のエクスポート

コマンドラインコンソールに情報を返すだけでは十分ではないこともあります。おそらくレポートを作成したり、結果を他の形式で共有する必要があります。その場合、結果を他の形式にエクスポートする必要があります。

GPResultの出力をいくつかの異なる方法でエクスポートすることができます。

テキストファイルへの結果のエクスポート

ファイルへの結果のエクスポート方法の一つは、コマンドプロンプトまたはPowerShellの出力リダイレクション機能を使用することです。リダイレクション演算子>に続いてテキストファイル名を指定することで、コンソールで表示される内容がそのままテキストファイルに含まれます。

以下のコマンドは、すべてのRSOPデータを返し、ファイルC:\Temp\RsopReport.txtを作成し、GPResultコマンドの全体の結果を含めます。

Gpresult /R > c:\Temp\RsopReport.txt

HTMLまたはXMLファイルへの結果のエクスポート

コマンドプロンプトからテキストファイルに直接リダイレクトするのとは異なり、適用されたポリシー情報をHTMLまたはXMLファイルに生成して保存することもできます。要求されたHTMLファイルのパスに続いて/Hスイッチ(HTML用)または/Xスイッチ(XML用)を使用すると、GPResultは見栄えの良いHTMLファイルを出力します。

Gpresult /H c:\Temp\RsopData.html
Gpresult /X c:\Temp\RsopXMLRreport.xml

ファイルがすでに存在する場合、GPResultはエラーを返します。既存のファイルを上書きするようにGPResultに強制するには、/Fスイッチを使用します。

リモートでGPResultを実行する

このチュートリアルでは、GPResultをローカルで実行してきました。パラメータ/sを使用すると、GPResultはリモートでも同じグループポリシー設定を取得して実行できます。

例えば、ユーザーuser01のRSOPデータを見つけるには、少なくとも一度はリモートwin10vm1コンピューターにログインしたユーザーの場合、次のように実行します:

gpresult /R /S win10vm1 /user user01
Finding RSOP data

おそらく、リモートコンピューターでグループポリシー情報をクエリする権限がないコンピューターにログインしています。その場合、GPResultは代替資格情報を指定しない限り失敗します。

次のように、/U(ユーザー名)および/P(パスワード)パラメーターを使用して代替資格情報を指定します。

gpresult /R /S win10vm1 /scope user /U homelab\MyLabAdmin /P password
Specify alternate credentials

Active Directoryに危険なパスワードが潜んでいませんか?Specops Password Auditorをダウンロードして、無料でパスワードの脆弱性をスキャンしてください!

結論

これで、GPResultコマンドを使用して、ローカルおよびリモートコンピューターの適用されたグループポリシー設定をクエリする方法がわかりました。この便利なコマンドは、どのActive Directory管理者の武器庫にもある素晴らしい発見およびトラブルシューティングツールです。

次に、「ドメインに参加したコンピューターが期待したGPOを適用したことを確認するにはどうすればよいですか?」と思ったとき、どのツールを使用しますか?

Source:
https://adamtheautomator.com/gpresult/