Hallo zusammen
Unsere SW-Verteilung läuft mit einem 32-bit Agent. Neu haben wir immer mehr 64bit Clients.
Aktuell haben wir ein VBScript, welches die SW installiert und Registry checkt, reinschreibt, ausliest, etc.
Beim VBScript haben wir es mit WMI Klassen gelöst, dass er in einem 32bit CMD auch auf die 64bit Registry zugreifen kann:
Beispiel
Function DelReg64(sRegHive, sRegKey, sRegValue, sArchtct) Dim objCtx, objLocator, objServices, objStdRegProv, Inparams, Outparams Dim Method On Error resume Next Set objCtx = CreateObject("WbemScripting.SWbemNamedValueSet") objCtx.Add "__ProviderArchitecture", sArchtct Set objLocator = CreateObject("Wbemscripting.SWbemLocator") Set objServices = objLocator.ConnectServer("","root\default","","",,,,objCtx) Set objStdRegProv = objServices.Get("StdRegProv") Select Case sRegValue Case "" Method = "DeleteKey" Set Inparams = objStdRegProv.Methods_(Method).Inparameters Inparams.Hdefkey = sRegHive Inparams.Ssubkeyname = sRegKey Set Outparams = objStdRegProv.ExecMethod_(Method,Inparams,,objCtx) Case Else Method = "DeleteValue" Set Inparams = objStdRegProv.Methods_(Method).Inparameters Inparams.Hdefkey = sRegHive Inparams.Ssubkeyname = sRegKey Inparams.Svaluename = sRegValue Set Outparams = objStdRegProv.ExecMethod_(Method,Inparams,,objCtx) End Select DelReg64 = Outparams.ReturnValue set objCtx = Nothing set objLocator = Nothing End Function
In Powershell habe ich bisher folgende Funktion geschrieben:
function DelReg64 ([string]$RegKey, [string]$RegValue) { If (!$RegValue) { Remove-Item -Path $RegKey } else { Remove-ItemProperty -Path $RegKey -Name $RegValue } }
Aus einem 32bit CMD sieht er aber den 64bit Teil nicht.
Wisst ihr was ich meine? Kennt ihr dafür eine einfache Lösung? Habt ihr damit Erfahrung?
Liebe Grüsse
ynickburk