Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PowerShell - Registry x64

Mitglied: emeriks

emeriks (Level 4) - Jetzt verbinden

13.02.2018, aktualisiert 14.02.2018, 176 Aufrufe, 5 Kommentare

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:
01.
$Reg = [Microsoft.Win32.RegistryKey]::OpenBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, [Microsoft.Win32.RegistryView]::Registry64) 
02.
$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

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.
Mitglied: snapdragon
13.02.2018, aktualisiert um 15:07 Uhr
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
Bitte warten ..
Mitglied: emeriks
14.02.2018 um 08:35 Uhr
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.
Das wäre eine Variante ...
Bitte warten ..
Mitglied: emeriks
14.02.2018, aktualisiert um 11:37 Uhr
Danke, damit bin ich jetzt weiter gekommen.

So habe ich es gelöst: s.u.
(Achtung: Ich habe es nicht getestet, wenn auf einem Computer nur die v2.0 installiert ist und auch nur ein x86 OS.)

Jetzt kann ich einfach mit Get-ItemProperty in der Registry lesen.

01.
$IsPowerShellx64 = ([IntPtr]::size -eq 8) 
02.
$IsPowerShellv2 = ($PSVersionTable.PSVersion -eq [Version]"2.0") 
03.
If(-not $IsPowerShellv2 -or -not $IsPowerShellx64) { 
04.
  # PS-Version ist größer als 2.0 --> Das Script startet sich selbst noch einmal mit PS v2.0 
05.
  # und/oder 
06.
  # PS läuft nicht als x64 --> Das Script startet sich selbst noch einmal mit PS v2.0 und x64 
07.
   
08.
  # Hinweis: Normalerweise ist in einen 32bit-Prozess der SYSWOW64-Pfad nicht sichtbar, er wird als "System32" emuliert. 
09.
  # Trotzdem verweist $PSHOME in seinem Pfad auf SYSWOW64, wenn es als x86 läuft. 
10.
  $PSpath = $PSHOME.ToLower().Replace("syswow64","sysnative") + "\powershell.exe" 
11.
  $ScriptPath = $MyInvocation.MyCommand.Definition 
12.
  Start-Process -FilePath $PSpath -ArgumentList "-Version 2 -File `"$ScriptPath`" `"$DataFilePath`"" -Wait 
13.
  exit 
14.
}
Bitte warten ..
Mitglied: emeriks
14.02.2018 um 11:39 Uhr
Nee, das war es doch noch nicht.

Ich habe hier zwei Server mit Win2008R2. Beide mit PowerShell 4. Auf dem einen funktioniert es, auf dem anderen nicht.
Wo es nicht funktioniert, da wird auch beim Start der Powershell aus dem Script heraus mit "-Version 2" weiterhin Version 4 gemeldet.

Was ist das jetzt schon wieder?
Bitte warten ..
Mitglied: snapdragon
14.02.2018, aktualisiert um 17:13 Uhr
Zitat von emeriks:

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.
Das wäre eine Variante ...
Zweite Variante: Über "StdRegProvider" und WMI und "__ProviderArchitecture" arbeiten
https://gallery.technet.microsoft.com/scriptcenter/6062bbfc-53bf-4f92-99 ...
https://msdn.microsoft.com/en-us/library/aa393067(v=vs.85).aspx
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Registry
gelöst Frage von MarabuntaBatch & Shell1 Kommentar

Hallo, ich will mit Powershell einen neuen Registry Key erstellen(bzw. ersetzten falls vorhanden), mit Name und Wert. Set-ItemProperty erstellt ...

Windows Tools
Powershell Remotezugriff auf Registry
gelöst Frage von kushMichiWindows Tools15 Kommentare

Hallo Leute, ich habe ein Skript geschrieben welches aus der Registry auf einem Remoteserver etwas auslesen soll. Problem: ich ...

Batch & Shell
Registry-Backup mit PowerShell
gelöst Frage von 112TimoBatch & Shell8 Kommentare

Hallo an alle Leser, ich möchte ein Backup der aktuellen (lokalen) Registry erstellen. Dies soll ein Teil eines größeren ...

Windows Server

Powershell und Remote in der Registry rumwuseln

gelöst Frage von H41mSh1C0RWindows Server6 Kommentare

Hi@All, ich habe hier ein XML. Das bekomme ich auch eingelesen und gefiltert wie es sein soll. Am Ende ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 StundeGoogle Android

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 StundeSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 4 StundenMicrosoft2 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 22 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server35 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

CPU, RAM, Mainboards
32 gb RAM zu wenig?
Frage von pcguyCPU, RAM, Mainboards13 Kommentare

Hallo zusammen, mein PC verfügt über 32GB Ram. Nun kriege ich bei grossen Dateien im Illustrator die Fehlermeldung das ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing9 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...