レジストリ管理にグループポリシーを使用する方法 – 実用的なヒントと注意点
Windowsドメイン内の多数のコンピューターのレジストリキーを一元的に調整する必要があった経験があれば、それがいかに面倒なことかご存じでしょう。各マシンを手作業で操作するのは面倒なだけでなく、エラーが発生しやすくなります。そこでグループポリシー(GPO)の出番です。GPOを使えば、多数のコンピューターにレジストリ設定を自動でプッシュ、変更、削除でき、手間もかかりません。しかし、リモートレジストリアクセス、アクセス許可、GPOの複雑なオプションなどが絡み合うと、必ずしも簡単ではありません。この簡単な概要では、レジストリ操作をスムーズに実行できるように、役立つヒントをいくつかご紹介します。
ドライバーの自動更新を無効にしたり、ユーザー設定を調整したり、大量のレジストリ設定を一度にインポートしたりする場合でも、ツールとコマンドを理解することが重要です。当然のことながら、Windows は時として、これらの操作を必要以上に難しくしてしまうことがあります。ここでは、実際に問題が発生しやすいケースとその解決方法をご紹介します。
GPOを使用したレジストリの展開と管理を修正する方法
GPO のレジストリ ウィザードを使用してレジストリ項目を展開する
初めての方や、すぐに結果が欲しい方には、この方法が最も簡単です。GPOのレジストリウィザードを使えば、リモートコンピュータに接続してレジストリキーを直接選択できます。HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearchingSearchOrderConfigのようなレジストリ値を導入するのに最適です。
- でグループポリシー管理コンソールを開きます
gpmc.msc。使い慣れていない場合は、「スタート」をクリックして入力すると、ポップアップが表示されます。 - 新しいGPOを作成するか、既存のGPOを選択して、対象のコンピューター/ユーザーを含む適切なOUにリンクします。リンク後にポリシーを編集します。
- コンピューターの構成→設定→ Windows の設定→レジストリに移動します。右クリックして、新規→レジストリ ウィザード を選択します。
- このウィザードは、ホスト名またはIPアドレスを使用してリモートPCに接続できます。 「ネットワークパスが見つかりません」というエラーが表示される場合は、次の原因が考えられます。
- PCの電源がオフになっています。
- ファイアウォールはリモート レジストリ アクセスをブロックします。
- リモートレジストリサービスが実行されていません。
サービスをリモートで開始するには、対象マシンで次のコマンドを実行します:
sc config remoteregistry start= demandおよびnet start remoteregistry。設定によっては、管理者権限が必要になる場合や、リモート管理機能を有効にする必要がある場合があることに注意してください。 - リモートレジストリブラウザを使用して、必要なキーを参照します。ただし、表示されるのはHKLMとHKUハイブのみなので、他のハイブが必要な場合は、リモートサーバー管理ツールをインストールしてください。
- ウィザードでレジストリパラメータ(ここではSearchOrderConfig )を選択します。現在の値は0または1になっている可能性がありますが、必要に応じて変更してください。ウィザードによってGPOにインポートされ、そこで作成/更新または削除するかどうかを設定できます。
- 保存してリンクし、ポリシーが適用されるのを待ちます。次回の更新時に、ターゲットマシンは新しいレジストリ値を取得するはずです。取得されない場合は、gpupdate /forceを使用するか、 で確認してくださいgpresult /r。
注意:GPOを削除したりリンクを解除したりしただけでは、レジストリ値は自動的には元に戻りません。明示的に削除またはリセットするには、別のGPOが必要です。
レジストリキーの手動作成または編集
レジストリの変更を自分で行う方が得意な方のために、要点を以下にまとめました。グループポリシーでは、次のようなレジストリ項目を作成できます。
Action: Update Hive: HKEY_LOCAL_MACHINE Key Path: SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching Value name: SearchOrderConfig Value type: REG_DWORD Value data: 00000000
キー パスに誤って HIVE プレフィックスを追加しないようにしてください。そうしないと、GPO によってサブキーが作成される場合がありますが、これは通常はお勧めできません。
利用可能なアクションは次のとおりです。
- 作成: 新しいキーまたは値を追加します。すでに存在する場合は無視されます。
- 更新: 既存の値を変更します。存在しない場合は作成します (デフォルト)。
- 置換: 既存のキー/値を削除して再作成します。ほとんどの場合、やりすぎです。
- 削除: キー/値を削除します。
「共通」タブでは、「一度適用して再適用しない」(手動調整用)などのオプションを設定したり、「アイテムレベルのターゲット設定」で特定のコンピューター/ユーザーに制限したりできます。ただし、「ログオンユーザーのセキュリティコンテキストで実行する」などの一部のオプションは、ユーザーを対象としたポリシーでのみ機能し、システムキーが除外される可能性があるので注意してください。
REGファイルからレジストリ設定をインポートする
参照マシンから設定をエクスポートしている場合は特に、REGファイルからレジストリエントリを一括インポートする方が簡単な場合があります。GPOはREGファイルを直接インポートできないため、グループポリシーの基本設定が理解できるXML形式に変換する必要があります。
Reg2GPPなどのオンラインツール、またはRegToXML.ps1などのPowerShellスクリプトを使用して変換します。必要なレジストリキーをエクスポートし、変換したXMLをGPOのレジストリ設定にインポートするだけです。
このアプローチは強力ですが、注意が必要です。REGファイルに複数のハイブが含まれている場合は、変換前に別々のファイルに分割してください。そうしないと、混乱が生じてしまいます。
GPO経由でレジストリ権限を調整する
GPOを使ってレジストリキーの読み取りまたは変更権限を持つユーザーを変更することは一般的ではありませんが、セキュリティ上必要な場合があります。 「コンピューターの構成」 → 「Windowsの設定」 → 「セキュリティの設定」 → 「レジストリ」で、特定のレジストリキーにACLを設定できます。
- レジストリ キー パス (例:
MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching) を追加します。 - 組み込みのセキュリティエディターを使用して、特定のグループまたはユーザーにフルコントロールなどの権限を割り当てます。権限をサブキーに継承したい場合は、継承のオン/オフを切り替えることができます。
- 最後に保存してデプロイします。注意:権限の変更を完全に有効にするには、再起動またはログオフが必要になる場合があります。
一部の設定では少し扱いにくい部分もありますが、権限が正しく設定されていれば動作します。ただし、全面展開する前に、可能であればローカルでテストすることを忘れないでください。
ログオンスクリプトでレジストリを変更する
古風ですが、一部の環境では今でも便利です。reg addまたはreg importコマンドを使ってバッチスクリプトを作成し、GPO経由でログオンスクリプトとして割り当てることができます。例えば、プロキシを設定するには次のようにします。
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d yourproxy:port /f
または、HKEY_CURRENT_USERに保存されている RDP 接続履歴をクリアするには、次のようにします。
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
最後に、REG ファイルからレジストリ キー全体をインポートするには、次のようにします。
reg import "%~dp0WindowsUpdateRegFile.reg"
これ%~dp0は、現在のスクリプトのディレクトリを指す便利なバッチ パラメータであり、これにより、スクリプトを整理しておくことができます。
スクリプトをNetlogonフォルダ(\\\\woshub.loc\\netlogon )にドロップし、コンピュータまたはユーザーのGPOの「ワークスペース」 → 「スクリプト」に設定します。特に指定しない限り、デフォルトではシステムの再起動時に実行されることに注意してください。
まとめ
- GPO のレジストリ ウィザードを使用してリモートで簡単に編集できますが、必要に応じてリモート アクセスを修正します。
- 必要に応じて、GPO で直接レジストリ エントリを手動で作成または変更します。
- 変換された REG-XML ファイルを介して複雑な設定をインポートし、一括更新を処理します。
- セキュリティに厳密な制御が必要な場合は、レジストリのアクセス許可を調整します。
- カスタム自動化のために、reg コマンドを使用してログオン スクリプトまたは起動スクリプトを活用します。
まとめ
レジストリ設定をプッシュしてGPO経由で管理すれば、リモートレジストリアクセスや権限の問題といったいくつかの問題さえ解決すれば、かなりの時間を節約できます。Windowsには、本来シンプルであるべきことを複雑にする方法が山ほどあるように感じることもありますが、これらの方法を使えば、たいていはすべてをうまく制御できます。特に権限を変更したり、レジストリ値を一括で置き換えたりする場合は、事前に数台のマシンでテストすることを忘れないでください。これで1つのアップデートがうまくいけば、ミッションは達成です。