PowerShell - Registry x64
Hi,
ich will sicherstellen, dass ein PowerShell Script immer im x64-Zweig der Registry liest, egal ob die PowerShell in 32 oder 64 Bit läuft.
Also greife ich folgendermaßen zu:
Das funktioniert unter PS v4 tadellos. Jedoch unter PS v2.0 kommt
Mit Get-ItemProperty liest er doch immer abhängig davon, ob PS als x86 oder x64 läuft. Das ist doch richtig?
Welche Optionen habe ich in PS v2.0 für o.g.?
Ich benötige PS v2.0, weil dieses Script in einer Exchange 2010 PowerShell laufen muss.
E.
ich will sicherstellen, dass ein PowerShell Script immer im x64-Zweig der Registry liest, egal ob die PowerShell in 32 oder 64 Bit läuft.
Also greife ich folgendermaßen zu:
$Reg = [Microsoft.Win32.RegistryKey]::OpenBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, [Microsoft.Win32.RegistryView]::Registry64)
$Value1 = $Reg.OpenSubKey("SOFTWARE\MySoftware").GetValue("Value1")
Das funktioniert unter PS v4 tadellos. Jedoch unter PS v2.0 kommt
Microsoft.Win32.RegistryView : Der Typ [Microsoft.Win32.RegistryView] kann nicht gefunden werden: Stellen Sie sicher, dass die Assembly, die diesen Typ enth„lt, geladen wird.
Bei ........ps1:108 Zeichen:127
_+ $Reg = [Microsoft.Win32.RegistryKey]::OpenBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, [Microsoft.Win32.RegistryView] <<<< ::Registry64)
_+ CategoryInfo : InvalidOperation: (Microsoft.Win32.RegistryView:String) , RuntimeException
_+ FullyQualifiedErrorId : TypeNotFound
Bei ........ps1:108 Zeichen:127
_+ $Reg = [Microsoft.Win32.RegistryKey]::OpenBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, [Microsoft.Win32.RegistryView] <<<< ::Registry64)
_+ CategoryInfo : InvalidOperation: (Microsoft.Win32.RegistryView:String) , RuntimeException
_+ FullyQualifiedErrorId : TypeNotFound
Mit Get-ItemProperty liest er doch immer abhängig davon, ob PS als x86 oder x64 läuft. Das ist doch richtig?
Welche Optionen habe ich in PS v2.0 für o.g.?
Ich benötige PS v2.0, weil dieses Script in einer Exchange 2010 PowerShell laufen muss.
E.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 364617
Url: https://administrator.de/forum/powershell-registry-x64-364617.html
Ausgedruckt am: 31.03.2025 um 14:03 Uhr
5 Kommentare
Neuester Kommentar

Checke einfach am Anfang des Skriptes ob es eine 32 oder 64 Bit Konsole ist und restarte die Session als 64bit wenn es keine 64bit ist
https://www.reddit.com/r/PowerShell/comments/2rv3y3/force_script_to_rela ...
Gruß snap
https://www.reddit.com/r/PowerShell/comments/2rv3y3/force_script_to_rela ...
Gruß snap

Zitat von @emeriks:
Zweite Variante: Über "StdRegProvider" und WMI und "__ProviderArchitecture" arbeitenChecke einfach am Anfang des Skriptes ob es eine 32 oder 64 Bit Konsole ist und restarte die Session als 64bit wenn es keine 64bit ist.
Das wäre eine Variante ...https://gallery.technet.microsoft.com/scriptcenter/6062bbfc-53bf-4f92-99 ...
https://msdn.microsoft.com/en-us/library/aa393067(v=vs.85).aspx