Ist Windows PowerShell 2.0 standardmäßig unter Windows 7 installiert?

19525
kenwarner

http://msdn.microsoft.com/de-de/library/ff637750.aspx Ansprüche

Windows PowerShell 2.0 muss nur unter Windows Server 2008 und Windows Vista installiert werden. Es ist bereits unter Windows Server 2008 R2 und Windows 7 installiert .

Powershell.exe lebt jedoch hier% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe. Das scheint nicht PowerShell 2.0 zu sein. Die Dateiversion von powershell.exe ist 6.1.7600.16385, das hilft auch nicht viel.

Wie kann ich sicher feststellen, ob Windows PowerShell 2.0 installiert ist, und wenn nicht, wo ist ein Download-Link für Windows 7?

8

4 Antworten auf die Frage

12
JPBlanc

Sie können auch verwenden $PSVersionTable

PS > $PSVersionTable  Name Value ---- ----- PSVersion 2.0 PSCompatibleVersions  BuildVersion 6.1.7600.16385 PSRemotingProtocolVersion 2.1 WSManStackVersion 2.0 CLRVersion 4.0.30319.225 SerializationVersion 1.1.0.1 

Diese Variable existiert nur in PowerShell V2.0 und gibt die verwendete CLR-Version an. Normales Ergebnis ist:

PS > $PSVersionTable  Name Value ---- ----- CLRVersion 2.0.50727.4959 BuildVersion 6.1.7600.16385 PSVersion 2.0 WSManStackVersion 2.0 PSCompatibleVersions  SerializationVersion 1.1.0.1 PSRemotingProtocolVersion 2.1 
10

Sie müssen es nicht aus den Registrierungsschlüsseln herausgreifen. Führen Sie einfach get-host aus und überprüfen Sie die Version.

Oder verwenden Sie die automatische Variable "$ Host". Es ist jedoch in der Spezifikation als implementierungsspezifisch gekennzeichnet (in diesem Fall erscheint "Get-Host" jedoch überhaupt nicht). Joey vor 13 Jahren 0
Get-Host doesn't appear at all in the spec -> That's weird. They just released that spec a couple of weeks ago. Wonder if that was an oversight? vor 13 Jahren 0
Vielleicht ist es nicht Teil der Cmdlets der Kernsprache. "$ Host" ist auch nur implementierungsdefiniert. Die Spezifikation bezieht sich offenbar nur auf die PowerShell * -Sprache *, nicht auf API und Hostmodell. Joey vor 13 Jahren 0
Die PSProviders werden hier nicht behandelt, aber es gibt einen Anlass dafür. vor 13 Jahren 0
4
Richard

Der Speicherort der ausführbaren PowerShell-Datei und der unterstützenden Dateien wurde weder für V2 noch für die Skripterweiterung geändert, .ps1da V2 vollständig abwärtskompatibel ist. Es ersetzt V1, anstatt einen Side-by-Side-Mechanismus zu benötigen.

0
kenwarner

Herausgefunden

http://blogs.msdn.com/b/powershell/archive/2009/06/25/detection-logic-poweshell-installation.aspx

Um zu überprüfen, ob Version 1.0 oder 2.0 von PowerShell installiert ist, überprüfen Sie den folgenden Wert in der Registrierung:
Schlüsselposition: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ PowerShellEngine Wertname
: PowerShellVersion
Werttyp: REG_SZ
Wert: <1.0 | 2,0>

powershell v2 befindet sich im Verzeichnis v1.0 unter win7 / 2008r2. Sie konnten auf diesen Plattformen nicht die Version 1 von Powershell installieren, auch wenn Sie wollten. Sie sind Systemkomponenten. Wenn Sie sich auf W7 oder R2 befinden, können Sie davon ausgehen, dass Sie eine Power-Shell der Version 2 oder höher haben. x0n vor 13 Jahren 0