KEINE dieser Antworten funktioniert in Situationen, in denen der Wertname Leerzeichen, Punkte oder andere Zeichen enthält, die in PowerShell reserviert sind. In diesem Fall müssen Sie den Namen gemäß http://blog.danskingdom.com/accessing-powershell-variables-with-periods-in-the-name/ in doppelte Anführungszeichen setzen - zum Beispiel:
PS> Get-ItemProperty Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7
14.0 : C:\Program Files (x86)\Microsoft Visual Studio 14.0\
12.0 : C:\Program Files (x86)\Microsoft Visual Studio 12.0\
11.0 : C:\Program Files (x86)\Microsoft Visual Studio 11.0\
15.0 : C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\V
S7
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS
PSChildName : VS7
PSProvider : Microsoft.PowerShell.Core\Registry
Wenn Sie auf einen der Werte 14.0, 12.0, 11.0, 15.0 zugreifen möchten, funktioniert die Lösung aus der akzeptierten Antwort nicht - Sie erhalten keine Ausgabe:
PS> (Get-ItemProperty Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7 -Name 15.0).15.0
PS>
Was funktioniert, ist das Zitieren des Wertnamens, was Sie aus Sicherheitsgründen wahrscheinlich sowieso tun sollten:
PS> (Get-ItemProperty "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7" -Name "15.0")."15.0"
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
PS>
Daher sollte die akzeptierte Antwort als solche geändert werden:
PS> $key = "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7"
PS> $value = "15.0"
PS> (Get-ItemProperty -Path $key -Name $value).$value
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
PS>
Dies funktioniert in PowerShell 2.0 bis 5.0 (obwohl Sie es wahrscheinlich Get-ItemPropertyValue
in Version 5 verwenden sollten).
Get-ItemProperty
kein zusätzlicher Text hinzugefügt wird . Stattdessen wird ein Objekt zurückgegeben, dessen Eigenschaften die gewünschten Daten enthalten. Der zusätzliche Text stammt aus der Standardausgabeformatierung des zurückgegebenen Objekts (eine Darstellung der Objektstruktur).