実をいうと、Windows Server 2008 R2 ではグループ・ポリシーそのものに関して「目に見える」大きな変更点はない。表4に、Windows Server 2008 R2におけるグループ・ポリシーの強化点を示す。
強化/追加された機能 | 内容 |
---|---|
グループ・ポリシー用のWindows PowerShellコマンドレットの提供 | Windows PowerShellコマンドレットにより、グループ・ポリシーの作成や変更、バックアップ、レポートの作成などを自動化できる。さらに、グループ・ポリシー・テンプレート・ファイル(ADMX)を作成することなく、業務アプリケーションの環境をグループ・ポリシーに組み込むことができるようになった |
「グループ・ポリシーの基本設定」の機能強化 | 表2を参照のこと |
システム・スターターGPOの標準提供 | これまでダウンロード・センターで提供されていたWindows VistaおよびWindows XP用の「エンタープライズ クライアント (EC) 環境」および「セキュリティ特化 - 機能制限 (SSLF) 環境」に沿ったスターターGPOが標準で組み込まれている |
強化されたユーザー・インターフェイス | 従来は管理用テンプレートのポリシー設定画面は[設定][説明][コメント]という3つのタブに分かれていたが、1つのタブに集約された。また画面サイズが変更できるようになった |
管理用テンプレートの強化 | 管理用テンプレートで、レジストリの複数行文字列値(REG_MULTI_SZ)および64bit QWORD値をサポートした |
表4 Windows Server 2008 R2におけるグループ・ポリシーの強化点 |
この中でも最も注目すべき強化点は、Windows PowerShellコマンドレットの提供だろう(PowerShellについては関連記事も参照)。表5に新しく提供されたWindows PowerShellコマンドレットの一覧を示す。それぞれのコマンドレットをご覧いただければ、一部を除き、およそ何を実行するためのものかは容易に想像がつくだろう。GPOのバックアップやレポート作成など、グループ・ポリシーに関する管理業務を自動化するのに使えそうなコマンドレット群であることが理解できる。
コマンドレット名 | 機能 |
---|---|
Backup-GPO | グループ・ポリシー・オブジェクト(GPO)をバックアップする |
Copy-GPO | 既存のGPOを複製する |
Get-GPInheritance | GPOの継承情報を取得する |
Get-GPO | GPOのインスタンスを取得する |
Get-GPOReport | 指定したGPOのレポートを生成する |
Get-GPPermissions | 指定したGPOのアクセス権を取得する |
Get-GPPrefRegistryValue | 基本設定内のレジストリ設定項目を取得する |
Get-GPRegistryValue | ポリシー内のレジストリ設定項目を取得する |
Get-GPResultantSetOfPolicy | ポリシー結果セット(RSOP)を取得する |
Get-GPStarterGPO | スターターGPOを取得する |
Import-GPO | バックアップされたGPOから設定値をインポートする |
New-GPLink | 新しいグループ・ポリシー・リンクを作成する |
New-GPO | 新しいGPOを作成する |
New-GPStarterGPO | 新しいスターターGPOを作成する |
Remove-GPLink | 既存のグループ・ポリシー・リンクを削除する |
Remove-GPO | 既存のGPOを削除する |
Remove-GPPrefRegistryValue | 指定した「基本設定」内のレジストリ設定項目を削除する |
Remove-GPRegistryValue | 指定した「ポリシー設定」内のレジストリ設定項目を削除する |
Rename-GPO | GPOの名前を変更する |
Restore-GPO | バックアップしたGPOを元のドメインに復元する |
Set-GPInheritance | GPOの継承情報を設定する |
Set-GPLink | グループ・ポリシー・リンクを変更する |
Set-GPPermissions | グループ・ポリシーのアクセス権を変更する |
Set-GPPrefRegistryValue | 「基本設定」内にレジストリ項目を設定する |
Set-GPRegistryValue | 「ポリシー設定」内にレジストリ項目を設定する |
表5 Windows Server 2008 R2で新しく提供されたWindows PowerShellコマンドレットの一覧 |
では、使用目的が見えづらい一部のコマンドレットとは何かといえば、間違いなく「Set-GPRegistryValue」だ。以下では、Set-GPRegistryValueを使ってグループ・ポリシーに設定を埋め込む方法について見ていこう。
グループ・ポリシーのメリットは、間違いなくその信頼性にある。マルチマスターをサポートしているActive Directoryドメイン・コントローラ間で複製され、どのドメイン・コントローラで認証を受けても最新の環境がクライアントとユーザーに適用される。さらには、規定で90分に1回のバックグラウンド更新(ドメイン・コントローラの場合には5分に1回)によって、管理者が変更した運用ポリシーを速やかに末端のクライアントまで伝達することができる。
こうした仕組みを、スクラッチで開発しようとしても容易ではないことは想像に難くないし、業務アプリケーションをグループ・ポリシーの管理下に置きたいと考える管理者は多いはずだ。
グループ・ポリシーでは、独自に作成された管理用テンプレート(ADMXファイル)を読み込む機構を用意しており、これによって業務アプリケーションの環境設定を信頼性の高いグループ・ポリシーに任せてしまうことができる。しかし、残念ながら多くの開発者がADMXファイルの作成方法を知らない、またはADMXファイルの存在自体が開発者に知られていないため、グループ・ポリシーを使用して業務アプリケーションが管理される場面は少ない。
マイクロソフトはADMXファイルを作成するための無償ツールとして、ADMX Editorを提供している(ADMXやADMX Editorの使い方については関連記事も参照)。このツールを使用すれば、比較的簡単に独自の管理用テンプレートを作成することができる。もちろん日本語を使用することも可能だ。しかし、設定項目が少なかったり、恒常的な環境変更が発生しない場合などは、かえってテンプレートの作成が面倒に思えることもあるはずだ。
ADMX Editorは、ADMX Migratorの一部としてマイクロソフトのダウンロード・センターから入手できる。ADMX Migratorとは、旧来の管理用テンプレート(ADMファイル)のフォーマットをADMXファイルに移行するためのツールだ。
ADMXファイルを独自に作成した場合の運用方法については、以下を参考にしていただきたい。
PowerShellを使ったグループ・ポリシーの編集でお勧めしたいのが、Set-GPRegistryValueだ。このコマンドレットを使用すると、独自の設定項目を、コマンドレットを使用して直接グループ・ポリシー・オブジェクトに埋め込むことができる。
例えば、以下のレジストリ項目を、「GYOMU-GPO」というグループ・ポリシー・オブジェクトに埋め込んでみよう。
項目 | 内容 |
---|---|
キー | HKEY_LOCAL_MACHINE\Software\MyApplication |
値の名前 | ServerName |
型 | REG_SZ |
値の内容 | Server01 |
表 埋め込むレジストリの例 |
まずドメイン・コントローラか、RSAT(リモート・サーバ管理ツール。TIPS「RSATツールでWindows Server 2008をリモート管理する」参照)がインストールされたクライアントで、PowerShellコンソールを起動し、以下のコマンドを入力する。これにより、グループ・ポリシー用モジュールが読み込まれる。
PS C:\>Import-Module GroupPolicy
正しく読み込まれたかどうかを確認するには、以下のコマンドでグループ・ポリシー関連のコマンドレット一覧を参照する。
PS C:\> Get-Command -module GroupPolicy
次に、Set-GPRegistryValueコマンドレットを使用して、上記のレジストリ項目をGYOMU-GPOに埋め込む。GYOMU-GPOはあらかじめグループ・ポリシー管理コンソールなどを使用して作成しておく必要がある。
PS > Set-GPRegistryValue -Name “GYOMU-GPO" -Key “HKLM\Software\MyApplication" -ValueName "ServerName“ -Value “Server01” -Type String
以上で設定は完了だ。設定項目の洗い出しさえ済ませておけば、5分もあれば完了するだろう。
今回はHKEY_LOCAL_MACHINE(HKLM)ハイブにレジストリ項目を埋め込んだので、設定値が有効になるのは、コンピュータの再起動後か、コマンドプロンプトから「gpupdate /force」コマンド(TIPS「gpupdateでグループ・ポリシーの適用を強制する」参照)を実行した後となる。
たったこれだけの作業で独自の業務アプリケーションの環境設定をグループ・ポリシー配下に組み込むことができるのは非常にリーズナブルだろう。
そのほか、Set-GPRegistryValue のさまざまな使い方については、筆者のブログでも取り上げているので参考にしていただきたい。
では、Set-GPRegistryValueによってGPOに埋め込まれた設定はどのように確認すればよいだろうか? 実は、コマンドレットによって埋め込まれた値も、グループ・ポリシーのレポートに出力されるため、ほかの設定値とともに管理することができる。ちなみに、コマンドレットを使用してレポートを作成するには、以下のように「Get-GPOReport」コマンドレットを使用できる。これにより、レポートを自動的に定期生成することが可能だ。
PS C:\> Get-GPOReport -Name "GYOMU-GPO" -ReportType HTML -Path C:\tmp\GYOMU-GPO.
また、RSOP(グループ・ポリシーの結果セット)を参照すれば、本設定がコンピュータに適用されたかどうかを確認することができる。RSOPはグループ・ポリシー管理コンソールから「グループ ポリシーの結果」ウィザードを使用して生成することもできるが、レポート同様PowerShellコマンドレットからも生成可能だ。
PS C:\> Get-GPResultantSetOfPolicy -Computer PC01 -ReportType HTML -Path C:\tmp\PC01.html
このように、Windows Server 2008 R2 ではグループ・ポリシー本体に大きな変更はないものの、PowerShellコマンドレットという強力な武器が用意されたことで、従来とは異なる管理スタイルが可能になった。
今後も、グループ・ポリシーはエンタープライズ・レベルのWindowsスタンダードな構成管理基盤としてだけでなく、ユーザー・アプリケーションを含めたIT全体の管理基盤として進化し続けるだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.