2013-03-08 91 views
1

我有一個運行Powershell V2的Win2003。如果我跑停止Powershell V2調用命令-ComputerName它總是運行V1 V1

Invoke-Command -ScriptBlock {$Host.Version} 

然後我得到「版本2.0」。但是,如果我跑

Invoke-Command -ScriptBlock {$Host.Version} -ComputerName localhost 

然後我得到「1.0版」

我認爲這件事情做遠程PowerShell,但我一直無法找到設置。誰能幫忙?

注意:

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\Microsoft.PowerShell\InitializationParameters 

ParamName   ParamValue 
---------   ---------- 
PSVersion   2.0 

回答

1

遠程主機最初是在v2中引入的,所以遠程主機的版本是1(ServerRemoteHost)。當您運行Invoke-Command而沒有-ComputerName時,您直接在powershell.exe中運行命令。嘗試在兩個命令中檢查(並比較)$ Host.Name,你應該看到不同之處。

PowerShell版本最好使用$PSVersionTable進行檢查 - 在v1中它不存在,在任何新版本中,它都會告訴您當前正在運行的PowerShell的哪個版本。

+0

謝謝,它有很多意義。我試着只執行PS2 cmdlet,他們工作,所以我收集了一些東西丟失。現在接下來的問題是讓它使用.net 4而不是2.但現在你已經聲明瞭ServerRemoteHost,然後我會去尋找那個提供配置。謝謝。 – pkr2000 2013-03-08 15:00:18

+0

wsmprovhost.exe :) – pkr2000 2013-03-08 15:56:38