Active Directoryのグループポリシーで設定できる項目がどのレジストリなのか調べてみた
Active Directoryのグループポリシーで設定できる項目は、それに対応するレジストリがある。
ということは、そのレジストリを調べて適切な値をセットすれば、グループポリシーを使わずともその効果が得られる。
ということは、そのレジストリを調べて適切な値をセットすれば、グループポリシーを使わずともその効果が得られる。
ということで、調べる方法をまとめておく。
「そんなの『窓の手』使えばいいじゃん。」という場合は、使えばいいじゃん。(^^)
おおまかな話
グループポリシーで設定できる項目は、管理用テンプレート(ADMファイル)に記述されている。
このファイルは、ドメインコントローラのC:\WINDOWS\INF内にある。
調べたい項目の文字列をキーワードにしてADMファイルを検索し、そこに書かれている内容を読むことで、該当するレジストリのキーやセットすべき値を調べることができる。
レジストリの名前を調べる
- Active Directoryユーザとコンピュータを起動してグループポリシーの設定画面を表示させ、調べたい項目の正しい文字列を調べる。
- 以降では、「ユーザの構成」の「管理用テンプレート」の「タスクバーと[スタート]メニュー」の「[スタート]メニューから[マイ ドキュメント]を削除する」について調べるとする。
- コマンドプロンプトを起動して、カレントディレクトリを、c:\windows\infに変更する。
> cd \windows\inf
- 調べたい項目の正しい文字列の一部をもとに…この例ではマイ ドキュメントを選んでみる…、次のコマンドでその項目がどのADMファイルに含まれているか調べる。
> find "マイ ドキュメント" *.adm
-
- この例ではsystem.admに含まれていることが分かった。
- 前手順で調べたファイルを、メモ帳で開く。
- コマンドプロンプトを開いているので、コマンドで実行した方が早い。
> notepad system.adm
- 開いたADMファイルで、調べたい項目が記述されている場所を探す。
- [CTRL]+[F]で検索
- この例では、次の行に書かれていた。
NoSMMyDocuments="[スタート] メニューから [マイ ドキュメント] を削除する"
- 前手順で調べた、調べたい項目に関連付けられている英文項目名をもとに…この例ではNoSMMyDocuments…、同じファイルの中でこの項目のレジストリ情報が記述されている場所を探す。
- [CTRL]+[F]で検索
- この例では、次のような記述がされていた。
CLASS USER CATEGORY !!StartMenu #if version >= 4 EXPLAIN !!StartMenu_Help #endif KEYNAME "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" (省略) POLICY !!NoSMMyDocuments #if version >= 4 SUPPORTED !!SUPPORTED_Win2k #endif EXPLAIN !!NoSMMyDocuments_Help VALUENAME "NoSMMyDocs" END POLICY
- 前手順で調べた情報をもとに、次のようなレジストリキーの名前を得る。
- この例では…
CLASS USER | HKCU(HKEY_CURRENT_USER) |
KEYNAMEの値 | Software\Microsoft\Windows\CurrentVersion\Policies\Explorer |
該当するPOLICYの"VALUENAME"の値 | NoSMMyDocs |
-
- これら3つの情報を合わせて、次のレジストリキーを得る。
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoSMMyDocs
レジストリにセットする値
- どのような値をセットすればよいのかは、レジストリに関する記述がされている部分を見て考える。
- この例では、セットできる値が「有効」「無効」「未定義」の3種類。
- 「有効」にセットするには1
- 「無効」にセットするには0
- 「未定義」にセットするには何も値をセットしない
- この例では、セットできる値が「有効」「無効」「未定義」の3種類。
まとめると
- 以上のことから、「タスクバーと[スタート]メニュー」の「[スタート]メニューから[マイ ドキュメント]を削除する」を有効にするためには、次のようにレジストリを設定すればよいことが分かった。
キー | HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoSMMyDocs |
値 | 1 |
おまけ
レジストリの値を確認する方法
- 手っ取り早いのはREGEDITを使う方法。
- 特定の値だけ簡単に見たい場合は、WSHを使うと便利。
- サンプルプログラム
Option Explicit Dim objWshShell Dim key,value Set objWshShell = WScript.CreateObject("WScript.Shell") key = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoSMMyDocs" value = objWshShell.RegRead( key ) WScript.Echo( "value="&value )
-
- これをvbsという拡張子のファイルに保存してダブルクリックで実行。
レジストリの値をセットする方法
Option Explicit Dim objWshShell Dim key, value, xtype Set objWshShell = WScript.CreateObject("WScript.Shell") key = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoSMMyDocs" value = 1 xtype = "REG_DWORD" objWshShell.RegWrite key, value, xtype
-
- これをvbsという拡張子のファイルに保存してダブルクリックで実行。
- REGファイル®EDITコマンドを使う場合
> regedit settings.reg
-
- プロンプトを表示しないでコマンドを実行したい場合は、/sオプションを付けて実行。
> regedit /s settings.reg
-
- ちなみに、この例の場合REGファイルは次のようになる。
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoSMMyDocs"=dword:00000001