PowerShellを使用してActive Directoryグループポリシーレポートを作成します。 Get-GpoReport
cmdletの助けを借りて、グループポリシー(GPO)に関するレポートを作成できます。これには、シンプルなテキストベースのものから完全なハイパーテキストマークアップ言語(HTML)レポートまでが含まれます。さらに、このレポート生成プロセスをPowerShellで自動化することができます。これにより、時間を節約し、Active Directory(AD)システムに関する重要な情報を取得できます。この記事では、PowerShell GPOモジュールのインポート、GPOのエクスポート、およびGPOを組織単位(OU)にリンクする方法について説明します。これは例として行われ、すべてが協力していくつかの優れたレポートを作成するための手順です。
では、PowerShellを使用してActive Directoryポリシーレポートを作成する方法を始めましょう。
PowerShellを使用してADグループポリシーレポート(GPO)を作成する
前提条件
この記事では、作成および既存のGPOを変更するいくつかの異なる状況について説明します。以下の例に従って進める場合は、次のものをすでに準備しておいてください:
- Group PolicyのためのPowerShellモジュール。Windows 10を使用している場合は、RSATをダウンロードしてインストールするか、Windows Serverを使用している場合は、以下のPowerShellコマンドを使用できます:
Install-WindowsFeature -Name GPMC
- A computer member of the same AD domain from which we will query GPOs.
- GPOを読み取る権限を持つドメインユーザーアカウントを持つADに参加したコンピュータ。
Get-GpoReportを使用してHTMLレポートを生成する
まずは、単一のGPOがあると想像してみましょう。その設定を表示したいと同時に、HTMLレポートを生成して作業を始めたいと考えています。幸いなことに、Get-GpoReport
は、GPOを検出し、PowerShellを使用してそれらをエクスポートすることができます。そのためには、GPOの名前またはGPOのグローバル一意識別子(GUID)が必要です。
そのため、詳細なHTMLレポートを作成するために少なくとも3つのパラメーターを使用する必要があります:
- GPOを検索するための名前またはガイド。
- ReportTypeパラメーターを使用して、生成するレポートの種類を指定します。HTMLまたはXML(Extensible Markup Language)のどちらかを選択できます。
- レポートを保存したい場所を指定するパス。
たとえば、環境に GPOがある場合、GPOの名前がわかっているのであれば、ReportType
をHTML
の値に指定してHTMLレポートを作成し、このHTMLファイルを保存したいパスを指定することができます。
Get-GPOReport -Name 'Sample GPO' -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'
あるいは、以下の例で使用されているように、Guid
パラメーターを使用してGPOを検索することもできますが、これは追加のステップです。
$gponame = (Get-GPO -Name 'Sample GPO').Id
Get-GPOReport -Guid $gponame -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'
準備ができたら、お好みのブラウザでレポートを表示できます。
すべてのGPOに対してHTMLレポートを生成する
代わりに、ドメイン全体のGPOに対するレポートを作成することもできます。この場合、All
引数を使用してドメイン内のすべてのGPOをクエリする必要があります。ただし、今回は特定のGPOを指定するためのName
またはGuid
オプションではなく、All
スイッチパラメータを使用してすべてを見つけます。
Get-GPOReport -All -ReportType Html -Path "C:\Temp\All-SampleReport.html"
AD環境で使用される場合、Get-GPOReport
コマンドレットはServerパラメータで指定されたドメインコントローラ(DC)に接続し、GPOを読み取ります。その後、利用可能なサーバーがない場合は、デフォルトでPDCエミュレータの役割を持つDCが使用されます。
また読む Office 365 ユーザー レポート
Get-GpoReport で XML レポートを生成する
たとえば、以下の例では既存の GPO、サンプル レポート
をクエリし、XML レポートを作成します。そして、Invoke-Item
コマンドを使用して XML ファイルのデフォルト アプリでそのレポートを開きます。
Get-GPOReport -Name 'Sample GPO' -ReportType Xml -Path "C:\temp\SampleReport.xml"
Invoke-Item -Path "C:\Temp\SampleReport.xml"
完了すると、以下のスクリーンショットのような XML ファイルが表示されます。
まず、GPO XMLノードにはすべてが含まれています。その中には、次のようなものがあります。識別子
(GPO GUID)、名前
(GPO名)、コメントを含める、 セキュリティ 記述子、 SDDL
そして、さらに多くの情報があります。
GPO XMLレポート
このXMLレポートをHTMLと区別するのは、フォーマットだけではありません。基本的に、HTMLレポートで見られる属性は、XMLレポートでも存在します。しかし、それらはより構造化され、解析が簡単です。
重要なことは、GPOを変更するとポリシーのバージョン(コンピュータまたはユーザー)が増加します。したがって、Group Policy処理エンジンは新しい設定を適用するタイミングやポリシーが変更されたときを判断することができます。さらに、この動作により、GPOを変更した後に/joint /forceスイッチを使用せずにgpupdate.exeを実行できます。
Also Read Active Directory Management
InfraSOSを使用してActive Directory Group Policyレポートを確認する
無料でお試しください、すべての機能にアクセスできます。– 200以上のADレポートテンプレートが利用可能です。簡単に独自のADレポートをカスタマイズできます。
GPMC
で、GPOのバージョン(ADおよびSYSVOL用)とその状態を表示できます。
クライアントのコンピュータは、VersionDirectory
とVersionSysvol
が0
の値を持っている間でも、Enabled
がtrue
である場合でも、ポリシーを引き続き処理します。システムは処理エンジンに通知し、GPOの関連部分を実装する必要がないことを伝えます。構成を変更しても、比較的短いネットワーク上の高速コンピュータのパフォーマンスに影響を与えることはありません。それでも、このようなGPOの貴重な秒数を節約することができます、特に古いマシンや遅いネットワーク上の場合には。
したがって、クライアントマシン上の処理エンジンは、VersionDirectory
とVersionSysvol
が0
よりも高く、かつEnabled
がfalse
に設定されているポリシーを適用しません。なぜ一部の設定が適用されないのかを尋ねることがあります。したがって、これが偶然か意図的かを調査することが重要です。
もし、GPOの内部動作に精通している場合は、Get-GPOReport
コマンドを使用することができます。したがって、これはGPMCに移動する代わりに、プロパティを参照してこれらの設定を直接確認するためのものです。
あるいは、GPO内のいくつかの設定に焦点を当てたい場合があります。または最終的には、PowerShellを使用してOUにGPOをアタッチしたい場合があります。そのため、レポートを作成する必要がなくなります。
Path
パラメーターをその状況で削除します。以下の例における[xml]
キャストとPath
パラメーターの不在に注意してください。
[xml]$GpoXml = Get-GPOReport -Name 'Sample GPO' -ReportType Xml
2. Get-GPOReport
の出力をXMLオブジェクトに変換したので、簡潔なドット表記を使用してその多くのプロパティを迅速に参照できます。
$GpoXml.GPO.Computer
$GpoXml.GPO.User
3. foreach
ループを追加し、各GPO出力を処理するためにAll
引数を使用します。
$AllGpos = Get-GPO -All
$GpoVersionInfo = foreach ($gpo in $gpos) {
[xml]$g = Get-GPOReport -ReportType Xml -Guid $gpo.Id
[PSCustomObject]@{
"Name" = $g.GPO.Name
"Comp-Ad" = $g.GPO.Computer.VersionDirectory
}
}
$GpoVersionInfo | Sort-Object Name | Format-Table
XML GPOレポートの解析
Get-GPOReport
が生成するXML出力を使用して、GPOの多くの側面について学ぶことができます。前述の例では、前のモデルの$GPOXML.GPO.Computer
および$GPOXML.GPO.User
プロパティを見ると、以下に示すようにExtensionData
プロパティが表示されます。
以下に示すように、PowerShellでこれらのXMLノードにアクセスしてXMLデータに基づいたレポートを作成できます。
$PolicyDetails = foreach ($policy in $GpoXml.GPO.User.ExtensionData.Extension.Policy) {
[PSCustomObject]@{
"Name" = $policy.Name
"State" = $policy.State
}
}
$PolicyDetails
PowerShellを使用してActive Directoryポリシーレポートを作成する方法についての当社の記事ブログをお読みいただきありがとうございます。結びとさせていただきます。
PowerShellを使用してアクティブディレクトリグループポリシーレポートを作成する結論
ネイティブのグループポリシー管理コンソール(GPMC)に加えて、この記事ではHTMLおよびXML形式でエクスポートして包括的なレポートを生成する方法について説明しました。また、Get-GpoReport
コマンドレットについても説明しました。このコマンドレットは、PowerShellを介してGPMCと同じ情報を取得できるようになりました。これにより、多くのGPOを同時にクエリできるため、優れたレポートの作成に役立ちます。
Source:
https://infrasos.com/create-active-directory-policy-reports-with-powershell/