vbscriptを利用してOutlook Expressのメールルールをバックアップする例です。
このスクリプトはバックアップファイル(レジストリファイル)の保存先、ファイル名を引数で渡します。
例:
(script名) c:\test.reg
バックアップしたファイルは、ダブルクリックすることでインポートが可能です。
ここでの注意点として、OSを再インストールする度にGUIDが変わってしまいます。
バックアップした時とインポートする時の状況が違う時は、バックアップしたファイルをメモ帳などで開き、
GUIDを置き換える必要があります。
例:
バックアップ元のGUID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
インポート先のGUID {zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz}
1.インポート先のGUIDを調べる。
2.バックアップ元のファイルを開き、{xxx~}を置き換える。
メモ帳の場合は「検索する文字列」にバックアップ元のGUIDを、「置換後の文字列」にインポート先のGUIDを入れましょう。
また、このスクリプトでは、reg.exeというファイルを利用しています。Windows XPから標準でインストールされているものになります。
Windows 2000ではreg.exeが入っていないため、使えません…
ソースのダウンロードは こちら です。
Option Explicit '####################################################### '# Global-Configration # '####################################################### Const OpenTextFileForReading = 1 Const OpenTextFileForWriting = 2 Const OpenTextFileForAppending = 8 Const REG_SZ = 1 Const REG_EXPAND_SZ = 2 Const REG_BINARY = 3 Const REG_DWORD = 4 Const REG_MULTI_SZ = 7 '************************* ' Call Main Program '************************* Main() '************************* ' Start Main Program '************************* Sub Main() '####################################################### '# Local-Configration # '####################################################### Dim OBJ_WshShell 'WSH Shell Object Dim OBJ_FSO 'File System Object Dim OBJ_Folders 'Folder Object Dim OBJ_Args 'Argument Object Dim COL_Folders 'Collection Object Dim STR_FileName 'String Object Dim STR_StoreOwner 'String Object Dim STR_RulePath 'String Object Dim STR_LogFolder 'String Object Dim STR_LogFile 'String Object Dim STR_Temp 'String Object Dim i Set OBJ_WshShell = WScript.CreateObject("WScript.Shell") Set OBJ_FSO = WScript.CreateObject("Scripting.FileSystemObject") Set OBJ_Args = WScript.Arguments '引数チェック If OBJ_Args.Count = 1 Then STR_FileName = OBJ_Args(0) If Right(LCase(STR_FileName), 4) = ".reg" Then Else STR_FileName = STR_FileName & ".reg" End If If OBJ_FSO.FileExists(STR_FileName) Then WScript.Echo "エラー:出力先に同名のファイルが存在します。処理を続行出来ません。" WScript.Quit 1 End If Else WScript.Echo "エラー:引数の数が不正です。処理を続行出来ません。プログラムを中止します。" WScript.Quit 1 End If '【Get Mail Store Owner & Mail Store Path】 STR_StoreOwner = OBJ_WshShell.RegRead("HKEY_CURRENT_USER\Identities\Last User ID") If Err.Number <> 0 Then WScript.Echo "エラー:処理実行中にエラーが発生しました。処理を続行出来ません。プログラムを中止します。" Err.Clear Set OBJ_FSO = Nothing WScript.Quit 1 End If STR_RulePath = """HKEY_CURRENT_USER" & "\Identities\" & STR_StoreOwner & "\Software\Microsoft\Outlook Express\5.0\Rules""" If Err.Number <> 0 Then WScript.Echo "エラー:処理実行中にエラーが発生しました。処理を続行出来ません。プログラムを中止します。" Err.Clear Set OBJ_FSO = Nothing WScript.Quit 1 End If 'レジストリのExport OBJ_WshShell.Run "reg.exe export " & STR_RulePath & " " & STR_FileName, 0, True If Err.Number = 0 Then WScript.Echo "レジストリのバックアップは正常に完了しました。出力したファイルは " & STR_FileName & " です。" WScript.Quit 0 Else WScript.Echo "エラー:レジストリのバックアップに失敗しました。" WScript.Quit 1 End If End Sub