Windows 7 のレジストリをスクリプトで設定する

※上級者向け。まちがえるとパソコンが起動しなくなったりします。以下自己責任でやること。

Windowsのアカウントを何個も作って設定していると、まちがえたり忘れたりするのでいい方法はないかと思ってたところ、JScriptで記述して設定できるようなのでやってみた。
var shell = WScript.CreateObject( 'WScript.Shell' );
//「登録されている拡張子は表示しない」をオフ(拡張子を常に表示する)// ファイルの種類の指標なのになんで隠すんだろう。
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Software¥¥microsoft¥¥Windows¥¥CurrentVersion¥¥Explorer¥¥Advanced¥¥HideFileExt', 0x00, 'REG_DWORD' );
//「常にメニューを表示する」// なんでこれがデフォルトでオフなのか僕には理解できません…
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Software¥¥microsoft¥¥Windows¥¥CurrentVersion¥¥Explorer¥¥Advanced¥¥AlwaysShowMenus', 0x01, 'REG_DWORD' );
//「全てのフォルダーを表示する」
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Software¥¥microsoft¥¥Windows¥¥CurrentVersion¥¥Explorer¥¥Advanced¥¥NavPaneShowAllFolders', 0x01, 'REG_DWORD' );
//「自動的に現在のフォルダーまで展開する」
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Software¥¥microsoft¥¥Windows¥¥CurrentVersion¥¥Explorer¥¥Advanced¥¥NavPaneExpandToCurrentFolder', 0x01, 'REG_DWORD' );
//「タイトルバーにファイルのパス名を表示する」
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Software¥¥microsoft¥¥Windows¥¥CurrentVersion¥¥Explorer¥¥CabinetState¥¥FullPath', 0x01, 'REG_DWORD' );
//「シングルクリックで選択し、ダブルクリックで開く」
shell.Exec ("reg add HKEY_CURRENT_USER¥¥Software¥¥Microsoft¥¥Windows¥¥CurrentVersion¥¥Explorer /v ShellState /t REG_BINARY /d 2400000033a0000000000000000000000000000001000000120000000000000032000000 /f");
//「ポイントして選択し、シングルクリックで開く」はこちら
// shell.Exec ("reg add HKEY_CURRENT_USER¥¥Software¥¥Microsoft¥¥Windows¥¥CurrentVersion¥¥Explorer /v ShellState /t REG_BINARY /d 2400000013a0000000000000000000000000000001000000120000000000000032000000 /f");
// 言語バーをタスクバーに固定する
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Software¥¥microsoft¥¥Windows¥¥CTF¥¥LangBar¥¥ShowStatus', 0x04, 'REG_DWORD' );
// スクリーンセーバーを有効に
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Control Panel¥¥Desktop¥¥ScreenSaveActive', '1', 'REG_SZ' );
//「再開時にログオン画面に戻る」をオン
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Control Panel¥¥Desktop¥¥ScreenSaverIsSecure', '1', 'REG_SZ' );
//「待ち時間」(秒数)
shell.RegWrite( 'HKEY_CURRENT_USER¥¥Control Panel¥¥Desktop¥¥ScreenSaveTimeOut', '1500', 'REG_SZ' );

RegWriteはWScript.Shellのメソッドですが、REG_BINARY型が(事実上)書き込めません。
代わりにExecを呼んで、reg.exeを起動させてレジストリを変更してもらってます。

ちなみに、これらを’HKEY_USERS¥.DEFAULT’ に書き込んでおくと、新規に作成するユーザーのデフォルトになる(らしい)。

参考文献:

Leave a Reply