停止Powershell v2 invoke-command -ComputerName它始终作为V1运行

时间:2013-03-08 12:06:17

标签: powershell-v2.0 powershell-remoting

我有一个运行Powershell v2的Win2003。如果我跑

Invoke-Command -ScriptBlock {$Host.Version}

然后我得到“2.0版”。但是,如果我跑

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

然后我得到“版本1.0”

我认为这与远程PowerShell有关,但我一直无法找到设置。有人可以帮忙吗?

NB。

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

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

1 个答案:

答案 0 :(得分:1)

Remoting主机最初是在v2中引入的,因此远程主机的版本为1(ServerRemoteHost)。当您在没有Invoke-Command的情况下运行-ComputerName时,您将直接在powershell.exe中运行命令。尝试在两个命令中检查(并比较)$ Host.Name,您应该看到差异。

最好使用$PSVersionTable检查PowerShell版本 - 在v1中它不存在,在任何较新版本中它都会告诉您当前正在运行的 PowerShell 版本。