Group Policy Management Console (GPMC) に加えて、Microsoft は Group Policy を管理するために使用できる一連の Windows PowerShell cmdlet を提供しています。Group Policy の PowerShell cmdlet を使用するには、これらの cmdlet を実行するデバイスに GPMC をインストールしておく必要があります。デバイスにグループ ポリシーの PowerShell モジュールがインストールされているかどうかを確認するには、以下のコマンドを実行します。モジュールがインストールされている場合、利用可能なすべてのグループ ポリシー cmdlet が表示されます。
Get-Command -Module GroupPolicy
厳選した関連コンテンツ:
新しいグループポリシーオブジェクトを作成する
まずは新しいグループポリシーオブジェクト(GPO)を作成しましょう。以下のコマンドは「Netwrix PCs」という名前の新しい GPO を作成し、その目的を説明するコメントを追加します:
New-GPO -Name "Netwrix PCs" -Comment "Client settings for Netwrix PCs"
このコマンドは、設定のない空の GPO を作成します。Active Directory ドメインでスターター GPO が構成されている場合は、それらの設定に基づいて新しい GPO を作成できます。次のコマンドは「Windows 10 MS Security Settings」GPO を基に、「Netwrix PCs」という名前の新しい GPO を作成します:
New-GPO -Name "Netwrix PCs" -StarterGPOName "Windows 10 MS Security Settings"
必要に応じて、パイプを使用して GPO をドメイン、ドメインコントローラーの組織単位(OU)またはサイトにリンクできます。次のコマンドは新しい GPO を作成し、ad.contoso.com ドメインの Clients OU にリンクします:
New-GPO -Name "Netwrix PCs" | New-GPLink -Target "ou=clients,dc=ad,dc=contoso,dc=com"
GPO のリンクを解除するには、Remove-GPLink cmdlet を使用します:
Remove-GPLink -Name "Netwrix PCs" -Target "ou=clients,dc=ad,dc=contoso,dc=com"
図 1. GPO をリンクおよびリンク解除する方法
厳選した関連コンテンツ:
GPO に関する情報を取得する
GPO を作成したら、Get-GPO を使用して、GPO の状態、作成日時、最終更新日時などの情報を取得できます:
Get-GPO -Name "Netwrix PCs"
さらに詳しい情報が必要な場合は、Get-GPO で作成されたオブジェクトを Get-GPOReport にパイプします。以下のスクリプトは、グループ ポリシー管理 コンソールで見られるのと同様の情報を、GPO について提供する HTML レポートを作成します:
Get-GPO -Name "Netwrix PCs" | Get-GPOReport -ReportType HTML -Path c:tempreport.html
図 2. 特定の GPO に関する詳細データを含む HTML レポート
グループ ポリシー設定の構成
レジストリ ベースの グループ ポリシー設定 の場所が分かっている場合は、Set-GPRegistryValue コマンドレットを使って設定できます。レジストリ ベースのグループ ポリシー設定とは、GPMC の [管理用テンプレート] の下に表示される設定のことです。Set-GPRegistryValue は、グループ ポリシー設定でカバーされていないレジストリ値を設定するためにも使用できます。たとえば、グループ ポリシー用の ADMX ファイルを持たないサードパーティ製アプリケーションのレジストリ設定を構成したい場合、Set-GPRegistryValue を使うと必要な設定をすばやく構成できます。次のコマンドは、ログオン中のユーザーのスクリーン セーバーのタイムアウトを 300 秒に設定します:
Set-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut -Type DWord -Value 300
Set- GPRegistryValue を使って、コンピューター構成またはユーザー構成の設定のいずれかを指定できます。下記の -Key パラメーターにあるレジストリ パスは、“HKCU”(“HKEY_CURRENT_USER”を表します)で始まります。代わりにコンピューターの設定を構成したい場合は、“HKCU”を“HKLM”(“HKEY_LOCAL_MACHINE”に展開されます)に置き換えます。
GPO で構成されているレジストリ キーの詳細情報を取得するには、Get-GPRegistryValue を使用します:
Get-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop"
図 3。GPO で設定されたレジストリ キーの詳細情報を取得する方法
GPO からレジストリ設定を削除するには、Remove-GPRegistryValue を使用します:
Remove-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut
上記の 3 つの cmdlet は、Policies の代わりに Preferences を使用してレジストリ キーを設定することにした場合、Group Policy Preference の同等のコマンドがあります。Set-GPPrefRegistryValue, Get-GPPrefRegistryValue および Remove-GPPrefRegistryValue。
グループ ポリシー設定の適用
GPO がドメイン、OU またはサイトにリンクされている限り、そのリンク先の下にあるユーザーおよびコンピューター オブジェクトに適用されます。 ただし、リモート サーバーまたはその他のデバイスで グループ ポリシーの更新 を強制的に実行したい場合は、Invoke-GPUpdate を使用できます。Invoke-GPUpdate をパラメーターなしで実行すると、ローカル コンピューター上のユーザーおよびコンピューターの構成設定が強制的に更新されます。以下のコマンドは、ユーザーの構成設定のみについて server1 でグループ ポリシーの更新を強制的に実行します:
Invoke-GPUpdate -Computer "adserver1" -Target "User"
ユーザーまたはコンピューターに適用されている GPO を確認する
ユーザーまたはコンピューターに適用されている GPO を調べるには、Get-GPResultantSetOfPolicy cmdlet を使用して、Resultant Set of Policy (RSoP) レポートを生成できます。以下のコマンドは、「dc1」という名前のコンピューターのレポートを生成し、結果を書き込みます。出力先は c:temp ディレクトリです:
Get-GPResultantSetOfPolicy -Computer dc1 -ReportType HTML -Path c:tempdc1rsop.html
図 4. ユーザーまたはコンピューターに適用されている GPO に関する情報を取得する方法
PowerShell の cmdlet は、グループ ポリシーの管理に非常に役立つ場合があります。ただし、PowerShell を使って GPO 内の設定を構成するのは簡単ではありません。グループ ポリシーの設定は、テキストベースの構成を想定して設計されていないためです。
共有する
もっと詳しく
著者について
Russell Smith
ITコンサルタント
管理およびセキュリティ技術を専門とする IT コンサルタント兼著者です。Russell は IT 分野で 15 年以上の経験があり、Windows セキュリティに関する書籍を執筆し、Microsoft の Official Academic Course(MOAC)シリーズ向けの教材も共著しています。