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


8

http://msdn.microsoft.com/en-us/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 befindet sich 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, daher hilft das auch nicht viel.

Woher weiß ich sicher, ob Windows PowerShell 2.0 installiert ist und wenn nicht, wo sich ein Download-Link für Windows 7 befindet?

Antworten:


10

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


Oder verwenden Sie die $Hostautomatische Variable. Es ist jedoch in der Spezifikation als implementierungsspezifisch markiert ( Get-Hosterscheint jedoch überhaupt nicht in der Spezifikation).
Joey

Get-Host erscheint überhaupt nicht in der Spezifikation -> Das ist komisch. Sie haben diese Spezifikation erst vor ein paar Wochen veröffentlicht. Frage mich, ob das ein Versehen war?

Nun, vielleicht wird es nicht als Teil der Cmdlets der Kernsprache angesehen. $Hostist auch nur implementierungsdefiniert. Die Spezifikation deckt anscheinend nur die PowerShell- Sprache ab , nicht die API und das Host-Modell.
Joey

Es deckt auch nicht die PSProvider ab, aber es gibt einen Vorteil für diese.

12

Sie können auch verwenden $PSVersionTable

PS > $PSVersionTable

Name                           Value
----                           -----
PSVersion                      2.0
PSCompatibleVersions           {1.0, 2.0}
BuildVersion                   6.1.7600.16385
PSRemotingProtocolVersion      2.1
WSManStackVersion              2.0
CLRVersion                     4.0.30319.225
SerializationVersion           1.1.0.1

Diese Variable ist nur in PowerShell V2.0 vorhanden und gibt die von Ihnen 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           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

4

Der Speicherort der ausführbaren PowerShell-Datei und der unterstützenden Dateien wurde für V2 nicht geändert, ebenso wenig wie die .ps1Skripterweiterung, da V2 vollständig abwärtskompatibel ist - es ersetzt V1, anstatt einen Mechanismus nebeneinander zu benötigen.


0

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üsselspeicherort: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ PowerShellEngine Wertname
: PowerShellVersion
Werttyp: REG_SZ Wertdaten
: <1.0 | 2,0>


Powershell v2 befindet sich im Verzeichnis v1.0 unter win7 / 2008r2. Sie konnten v1 von Powershell nicht auf diesen Plattformen installieren, selbst wenn Sie wollten. Sie sind Systemkomponenten. Wenn Sie auf w7 oder r2 sind, können Sie davon ausgehen, dass Sie v2 oder eine höhere Powershell haben.
x0n
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.