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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 364617
Url: https://administrator.de/contentid/364617
Printed on: May 8, 2024 at 02:05 o'clock
5 Comments
Latest comment
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