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 5) - Jetzt verbinden

13.02.2018, aktualisiert 14.02.2018, 418 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: 135333
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: 135333
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 ...

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 ...

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 ...

Neue Wissensbeiträge
Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 2 TagenSonstige Systeme5 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Datenschutz

Microsoft und DSGVO - ob das wohl jemals klappt (Probleme beim Datenabfluss für Office Pro Plus)?

Tipp von VGem-e vor 2 TagenDatenschutz3 Kommentare

Servus Kollegen, siehe Aber wer setzt schon MS Office Pro Plus ein? Wie dann der Stand beim "normalen" MS ...

Windows 10

Macht Windows 10.1809 Probleme mit gemappten Netzlaufwerken (betrifft wohl insbes. AMD-Hardware und Trend Micro AV-Produkte)?

Tipp von VGem-e vor 2 TagenWindows 103 Kommentare

Moin Kollegen, grad dazu gefunden und Hatten wir dies nicht bei früheren W10-Upgrades ebenfalls? Da bleibt nur, das Upgrade ...

Humor (lol)

Das neue Miniatur Wunderland OFFICIAL VIDEO - worlds largest model railway - railroad

Information von StefanKittel vor 3 TagenHumor (lol)2 Kommentare

Hallo, wer noch nie im Miniatur Wunderland war, sollte es dringend mal nachholen. Es gibt eine neues Video. Viele ...

Heiß diskutierte Inhalte
Windows 10
Programm unter Windows 10 automatisch mit administrativen Rechten starten
Frage von GrafmulderWindows 1016 Kommentare

Hallo zusammen! Zur Situation: Ich benutze Windows 10 Pro für Workstations (Build 1803) mit zwei Konten. Einem Administratorkonto und ...

Windows Server
Cisco Annyconnect Secure Mobility Client - Windows2003 Server unable to connect
Frage von novregenWindows Server11 Kommentare

Von einem Windows 2003 Server soll eine Verbindung über Cisco Anyconnect Mobility Client zu einer Gegenstelle aufgebaut werden. Die ...

Microsoft
Schulungs-Microsoft-Konten zentral verwalten
Frage von thejarneMicrosoft9 Kommentare

Hallo zusammen, wir haben bei uns in der Firma 12 Computer-Arbeitsplätze für EDV-Schulungen, wo u.A. auch Computer-Basics-Kurse (wie verwende ...

LAN, WAN, Wireless
Empfehlung Powerline Adapter
Frage von AgilolfingerLAN, WAN, Wireless9 Kommentare

Hallo Zusammen, ich brauche eine Empfehlung von euch. Ich möchte in einem privaten Haushalt eine Powerline Lösung einrichten. Allerdings ...