その買うを、もっとハッピーに。|ハピタス

OS入れ替え時用システム環境変数設定

OS入れ替える時の設定、出来る限り自動化したいのですが、その内のシステム環境変数周り。
ドライブ用にいつも設定しているのですが、設定しておけばもしドライブレターを変更した時楽です。
その他RAMドライブに一時フォルダを移したり、ファイル名を指定して実行用のフォルダのパスを登録したりとか。
プログラムはShellオブジェクトで設定してますが、レジストリ直接操作でも変更出来ますので、別バージョン作るかも。
他のコントロールパネルの設定がレジストリのどのキーなのか分かればレジストリ一括書き換えで良いのですが。
時間あるとき、コントロールパネルの設定変更前と後でレジストリの差分を出して調べてみたいと思います。

'--------------------
'ユーザー設定
Const DATA_DRIVE_ENV_NAME = "DataDrive"         'データドライブ変数名
Const DATA_DRIVE_LETTER = "D"                   'データドライブのドライブレター
Const RAM_DRIVE_ENV_NAME = "RamDrive"           'RAMディスク変数名
Const RAM_DRIVE_LETTER = "R"                    'RAMディスクのドライブレター
Const SOUND_DRIVE_ENV_NAME = "SoundDrive"       'サンプルドライブ変数名
Const SOUND_DRIVE_LETTER = "S"                  'サンプルドライブのドライブレター
Const FOR_WINR_FOLDER_NAME = "Win+R Shortcuts"  'ファイル名を指定して実行用のフォルダ名
'--------------------

Const SCRIPT_NAME = "初期設定ツール"
Dim tmp_path, winr_path
Dim env_path_val
Dim fs, objWshShell

Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")

'ドライブチェック
If fs.DriveExists(DATA_DRIVE_LETTER) = False Then 
    MsgBox "データドライブを用意して下さい。", vbExclamation, SCRIPT_NAME
    WScript.Quit
End If
If fs.DriveExists(RAM_DRIVE_LETTER) = False Then 
    MsgBox "RAMディスクを設定して下さい。", vbExclamation, SCRIPT_NAME
    WScript.Quit
End If

'フォルダ作成
If fs.FolderExists(DATA_DRIVE_LETTER & ":\" & FOR_WINR_FOLDER_NAME) = False Then fs.CreateFolder DATA_DRIVE_LETTER & ":\" & FOR_WINR_FOLDER_NAME
If fs.FolderExists(RAM_DRIVE_LETTER & ":\TEMP") = False Then fs.CreateFolder RAM_DRIVE_LETTER & ":\TEMP"

tmp_path = "%" & RAM_DRIVE_ENV_NAME & "%\TEMP"
winr_path = "%" & DATA_DRIVE_ENV_NAME & "%\" & FOR_WINR_FOLDER_NAME

'環境変数と値設定
With objWshShell.Environment("User")
    .Item("TEMP") = tmp_path 
    .Item("TMP") = tmp_path
End With
With objWshShell.Environment("System")
    env_path_val = .Item("Path")
    If InStr(env_path_val, winr_path) = 0 Then .Item("Path") = env_path_val & ";" & winr_path
    .Item(DATA_DRIVE_ENV_NAME) = DATA_DRIVE_LETTER & ":"
    .Item(RAM_DRIVE_ENV_NAME) = RAM_DRIVE_LETTER & ":"
    .Item(SOUND_DRIVE_ENV_NAME) = SOUND_DRIVE_LETTER & ":"
    .Item("TEMP") = tmp_path 
    .Item("TMP") = tmp_path
End With



Windows自動処理のためのWSHプログラミングガイド

Windows自動処理のためのWSHプログラミングガイド