' ' INI file converter for PuTTY ' ' Usage: ' C:\> CScript //Nologo putty.iniconv-1.0.0.vbs > putty.ini ' ' Copyright (c) 2008 Norifumi SUNAOKA ' ' ' Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) ' ' Version: 1.0.0 ' Const HKEY_CURRENT_USER = &H80000001 Const PUTTY_SESSIONS_KEY = "Software\SimonTatham\PuTTY\Sessions\" Const PUTTY_HOSTKEYS_KEY = "Software\SimonTatham\PuTTY\SshHostKeys\" Set StdOut = WScript.StdOut Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\." & _ "\root\default:StdRegProv") Set WS = WScript.CreateObject("Wscript.Shell") ' UseIniFile StdOut.WriteLine "[Generic]" & vbCrLf & "UseIniFile=1" & vbCrLf ' Sessions WMI.EnumKey HKEY_CURRENT_USER, PUTTY_SESSIONS_KEY, subkeys For Each subkey In subkeys StdOut.WriteLine "[Session:" & subkey & "]" Call OutputValues(PUTTY_SESSIONS_KEY & subkey & "\") Next ' SshHostKeys StdOut.WriteLine "[SshHostKeys]" Call OutputValues(PUTTY_HOSTKEYS_KEY) Set WS = Nothing Set WMI = Nothing Set StdOut = Nothing ' ' OutputValues ' Sub OutputValues(subkey) Set RE = new RegExp RE.pattern = "^\-?[0-9]+$" WMI.EnumValues HKEY_CURRENT_USER, subkey, names, types For i = 0 To UBound(names) value = WS.RegRead("HKCU\" & subkey & names(i)) If Not RE.Test(value) then value = """" & value & """" End If StdOut.WriteLine names(i) & "=" & value Next StdOut.WriteLine Set RE = Nothing End Sub