2008-08-15 42 views
2

Ich dachte, dass ich die neueste CTP von Powershell 2 hatte, aber wenn ich den Befehl versuchen: invoke-expression -computername Server01 -command 'get-process Powershell'fehlt Invoke-Expression des Powershell-param

ich einen Fehler message: Es wurde kein Parameter gefunden, der mit dem Parameternamen 'Computername' übereinstimmt.

Die Frage ist also: Wie kann ich feststellen, welche Version von PowerShell ich installiert habe? Und was ist die neueste Version?

Antwort

2

$host.version.tostring() wird die Versionsnummer zurückgeben.

RTM von v1 ist 1.0.0.0

konnte wirklich nicht sagen, was die neueste Version der Vorschaubilder sind, weil ich keine Chance zu spielen, noch gehabt haben.

1

Die neueste CTP ist CTP2 freigegeben am 05/02/08 und kann here gefunden werden. Remoting erfordert, dass WinRM sowohl auf dem aufrufenden Computer als auch auf dem Zielcomputer installiert wird. Im CTP ist ein Skript zur Konfiguration von WS-Management mit dem Namen Configure-WSMan.ps1 enthalten.

Dieser Befehl sollte Ihnen die Versionsnummer der PowerShell, die Sie installiert haben, erhalten. Get-Command "$ PSHome \ powershell.exe" | Format-List Fileversioninfo V1.0 ist 6.0.5430.0 CTP2 ist 6.1.6585.1

Ich habe nicht die Versionsnummer für die erste CTP auf der Hand, aber ich kann es finden, wenn Sie es wirklich brauchen.

0

Ich vermute, dass dies eine Änderung an dem Cmdlet während des Konfigurationsvorgangs Configure-Wsman.ps1 ist. Ich habe momentan kein Setup für die Umgebung, aber ich vermute, dass bei der Konfiguration etwas schief gelaufen ist. Ich kann überprüfen, dass unter XP der Parameter nicht verfügbar ist (duh). Ich würde annehmen, dass Sie dasselbe auf Vista/08 finden werden, ohne dass die Konfiguration abgeschlossen ist.

2

Das Problem ist, dass von CTP 1 bis CTP2, sie schaltete das Invoke Zeug, all die Remoting Sachen durch Invoke-Command jetzt geschehen sind, und Invoke-Expression ist ausschließlich für eine Zeichenfolge in ein Skript drehen;)

PS: Wenn Sie auf v2 sind, können Sie $PSVersionTable ausführen, um eine Liste der Versionen einschließlich der CLR- und Build-Versionen zu sehen.

3

Von letzter Build Nacht (was bedeutet, dass Sie dies in CTP3 könnten, aber wenn nicht, werden Sie es in dem nächsten öffentlichen Tropfen erhalten):

[4120:0]PS> $psversiontable 
Name       Value 
----       ----- 
CLRVersion      2.0.50727.3521 
BuildVersion     6.1.7047.0 
PSVersion      2.0 
WSManStackVersion    2.0 
PSCompatibleVersions   {1.0, 2.0} 
SerializationVersion   1.1.0.1 
PSRemotingProtocolVersion  2.0 

Experiment! Genießen! Engagieren!

Jeffrey Snover [MSFT] Windows Management Partner Architekt

0

Wenn die $PSVersionTable Variable nicht existiert, dann V1 Sie ausgeführt werden.

Wenn es existiert, dann wird die Version als $PSVersionTable.PSVersion verfügbar sein.

function Get-PSVersion { 
    if (test-path variable:psversiontable) 
     {$psversiontable.psversion} 
    else 
     {[version]"1.0.0.0"} 
}