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?

Kenwarner
quelle

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.


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

Richard
quelle
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>

Kenwarner
quelle
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