2008-08-15 72 views
2

我認爲我有PowerShell的2的最新CTP但是當我嘗試的命令: 調用表達-computername Server01上-command「得到處理PowerShell的」PowerShell的調用,表達缺失PARAM

我得到一個錯誤消息: 找不到與參數名稱「computername」匹配的參數。

所以問題是:如何知道我安裝了哪個版本的PowerShell?最新版本是什麼?

回答

2

$host.version.tostring()將返回版本號。

RTM V1的是1.0.0.0

不能誠實地告訴你什麼是預覽的是最新版本的,因爲我還沒有機會發揮還。

1

最新的CTP是CTP2於05/02/08發佈的,可以找到here。遠程處理要求將WinRM安裝在呼叫機器和目標機器上。 CTP中包含一個用於配置WS-Management的腳本,稱爲Configure-WSMan.ps1。

此命令應該爲您提供已安裝的PowerShell的版本號。 Get-Command「$ PSHome \ powershell.exe」|格式列表FileVersionInfo V1.0是6.0.5430.0 CTP2是6.1.6585.1

我沒有爲在場的第一個CTP版本號,但我可以找到它,如果你真的需要它。

0

我猜這是對配置過程Configure-Wsman.ps1期間所做的cmdlet的更改。我現在沒有環境設置來測試,但我猜測配置出了問題。我可以驗證在XP上該參數不可用(duh)。我假設你會發現Vista/08上沒有完成配置。

2

的問題是,從CTP 1至CTP2,他們交換了調用的東西,所有的遠程東西是通過Invoke-Command做,現在,Invoke-Expression完全是爲了把一個字符串轉換成劇本;)

PS:如果您使用的是V2版本,則可以運行$PSVersionTable以查看包括CLR和Build版本的版本列表。

3

從昨晚的版本(這意味着你可能有這樣的CTP3但如果沒有,你會得到它在未來公共降):

[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 

實驗!請享用!從事!

傑弗裏Snover [MSFT] Windows管理合夥人建築師

0

如果$PSVersionTable變量不存在,那麼你正在運行V1。

如果存在,則該版本將作爲$PSVersionTable.PSVersion

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