Active Directory グループポリシーの管理でグループポリシーオブジェクトのレポートを一括でエクスポートする方法について整理した内容をまとめました。
グループポリシーオブジェクトを操作する
GPO の設定はコマンドがなかったため、設定するにしてもレポートのエクスポートにしろグループポリシーの管理コンソールから操作する必要がありました。
ポリシーをエクスポートしてインポートすることは可能ですが、汎用性があまりないのでコマンドでさらっとできないかなと日々思っていたのですが、一部の設定に関してはPowerShellからの操作ができるようになっていたようです。今回はグループポリシーオブジェクトのレポートを一括でエクスポートする方法について整理しました。
グループポリシーオブジェクトを操作するには
グループポリシー関連の PowerShell コマンドを実行する前にモジュールのインポートが必要となります。
※管理者として実行した PowerShell にて操作を行います。
コマンド例
Import-Module -Name GroupPolicy
グループポリシーモジュールのインポート後はグループポリシー関連のコマンドが打てるようになり、Get-Command をうつことで指定可能なコマンドの一覧を確認することができます。
コマンド例
Get-Command -Module GroupPolicy
コマンド実行例
PS C:\Users\Administrator> Get-Command -Module GroupPolicy CommandType Name Version Source ----------- ---- ------- ------ Alias Get-GPPermissions 1.0.0.0 GroupPolicy Alias Set-GPPermissions 1.0.0.0 GroupPolicy Cmdlet Backup-GPO 1.0.0.0 GroupPolicy Cmdlet Copy-GPO 1.0.0.0 GroupPolicy Cmdlet Get-GPInheritance 1.0.0.0 GroupPolicy Cmdlet Get-GPO 1.0.0.0 GroupPolicy Cmdlet Get-GPOReport 1.0.0.0 GroupPolicy Cmdlet Get-GPPermission 1.0.0.0 GroupPolicy Cmdlet Get-GPPrefRegistryValue 1.0.0.0 GroupPolicy Cmdlet Get-GPRegistryValue 1.0.0.0 GroupPolicy Cmdlet Get-GPResultantSetOfPolicy 1.0.0.0 GroupPolicy Cmdlet Get-GPStarterGPO 1.0.0.0 GroupPolicy Cmdlet Import-GPO 1.0.0.0 GroupPolicy Cmdlet Invoke-GPUpdate 1.0.0.0 GroupPolicy Cmdlet New-GPLink 1.0.0.0 GroupPolicy Cmdlet New-GPO 1.0.0.0 GroupPolicy Cmdlet New-GPStarterGPO 1.0.0.0 GroupPolicy Cmdlet Remove-GPLink 1.0.0.0 GroupPolicy Cmdlet Remove-GPO 1.0.0.0 GroupPolicy Cmdlet Remove-GPPrefRegistryValue 1.0.0.0 GroupPolicy Cmdlet Remove-GPRegistryValue 1.0.0.0 GroupPolicy Cmdlet Rename-GPO 1.0.0.0 GroupPolicy Cmdlet Restore-GPO 1.0.0.0 GroupPolicy Cmdlet Set-GPInheritance 1.0.0.0 GroupPolicy Cmdlet Set-GPLink 1.0.0.0 GroupPolicy Cmdlet Set-GPPermission 1.0.0.0 GroupPolicy Cmdlet Set-GPPrefRegistryValue 1.0.0.0 GroupPolicy Cmdlet Set-GPRegistryValue 1.0.0.0 GroupPolicy
モジュールのインポートができたら次へ進みます。
グループポリシーの一覧を確認する
モジュールのインポートができたら、「Get-GPO」コマンドでグループポリシーの設定を確認します。
コマンド例
Get-GPO -all
※GUI の並び順と同一にする場合は下記コマンドになります。
Get-GPO -all |ft DisplayName,DomainName,Owner,CreationTime,ModificationTime,UserVersion,ComputerVersion,Id,GpoStatus,Description
コマンド実行例
DisplayName DomainName Owner CreationTime ModificationTime UserVersion ComputerVersion Id GpoStatus
----------- ---------- ----- ------------ ---------------- ----------- --------------- -- ---------
Default Domain Policy contoso.local CONTOSO\Domain Admins 2019/03/19 16:32:54 2019/03/19 16:48:46 31b2f340-016d-11d2-945f-00c04fb984f9 ...gsEnabled
Default Domain Controllers Policy contoso.local CONTOSO\Domain Admins 2019/03/19 16:32:54 2019/03/19 16:32:54 6ac1786c-016f-11d2-945f-00c04fb984f9 ...gsEnabled
PS C:\Users\Administrator>
存在するグループポリシーオブジェクトの一覧が表示されます。
グループポリシーのレポートを一括出力する
グループポリシーのレポートをエクスポートするには、下記のコマンドを実行します。
コマンド例
Get-GPO -All | ForEach-Object -Process {Get-GPOReport -GUID $_.ID -ReportType html -Path C:\$($_.Displayname).html}
コマンド実行後は、指定パスの保存先にすべてのグループポリシーのレポートが出力されています。