RegDump
Sinn und Zweck dieses Scriptes ist das Vergleichen der lokalen Registry vor und nach dem Installieren einer Software.
Gerade große SW-Pakete bringen eine Reihe von einzelnen Setups mit sich, die als Prereq oder zur Laufzeit der SW gebraucht werden.
Diese zusätzliche Software soll erfasst werden, um dem Softwaremanagement einen besseren Überblickt über eingesetzte Produkte zu geben.
Nachstehendes Script ist NOCH NICHT fertig. Es fehlt der funktionierende Dateienvergleich
und damit das erstellen des Deltas.
 'option explicit  DIM strcomputer, srcdir, nwresultfile, nwcontent, nwcontentneu, oargs,fehler DIM strKeyPath, subkey, arrSubKeys, wshell, fso, softid, regdmp, regdmp2, oreg DIM i  const HKEY_CLASSES_ROOT   = &H80000000 const HKEY_CURRENT_USER   = &H80000001 const HKEY_LOCAL_MACHINE  = &H80000002 const HKEY_USERS          = &H80000003 const HKEY_CURRENT_CONFIG = &H80000004 const HKEY_DYN_DATA       = &H80000005
 set wshell = createobject("wscript.shell") set fso = createobject("scripting.filesystemobject") strComputer = "." srcdir = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName))) 
 set oargs = wscript.arguments
if oArgs.Count <1 thenwscript.echo VBCRLF & "! FEHLER !" & VBCRLF & "! Fehlender Parameter pre/post?! SOFTID?"wscript.quitEnd if   regdmp = wshell.ExpandEnvironmentStrings("%TMP%") & "\regdmp.txt" regdmp2 = wshell.ExpandEnvironmentStrings("%TMP%") & "\regdmp2.txt"
  if oargs(0) = "pre" then prescan if oargs(0) = "post" then postscan  'wscript.echo "C:\Windows\system32\cmd.exe /c findstr.exe" & " /I /V /G:" & regdmp & " " & regdmp2 & ">" &nwresultfile,1 'regdmp2 = wshell.ExpandEnvironmentStrings("%TMP%") & "\regdmp2.txt" 'wshell.run "findstr.exe" & " /I /V /G: " & regdmp & " " & regdmp2 & ">" &nwresultfile,1,true 'end if
 sub prescan set regdmp = fso.createtextfile(regdmp,true) Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _           & strComputer & "\root\default:StdRegProv")   strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall" oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
  For Each subkey In arrSubKeys  on error resume next  sDisplayName = wshell.Regread("HKLM\" & strKeyPath & "\" & subkey & "\DisplayName")  fehler=error    if fehler <>0 then    regdmp.writeline ";" &subkey else     regdmp.writeline sDisplayname & ";" & subkey end if sDisplayName="" Next end sub  sub postscan softid = oargs(1)   set regdmp2 = fso.createtextfile(regdmp2,true)
 Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _           & strComputer & "\root\default:StdRegProv")   strKeyPath = "software\microsoft\windows\currentversion\uninstall" ' Root level oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
  For Each subkey In arrSubKeys  on error resume next  sDisplayName = wshell.Regread("HKLM\" & strKeyPath & "\" & subkey & "\DisplayName")  fehler=error   if fehler <>0 then    'if sdisplayname="" then    regdmp2.writeline ";" &subkey else     regdmp2.writeline sDisplayname & ";" & subkey end if   sDisplayName=""  next  end sub  sub write difference set dmp1file = fso.opentextfile(regdmp),1 set dmp2file = fso.opentextfile(regdmp2),2 set nwresultfile = fso.opentextfile(srcdir&"regresult.txt"),2 i=0  dmp1file.readall dmp2file.readline(i)   end sub wscript.quit