停止Powershell V2调用命令-ComputerName它总是运行V1 V1

问题描述:

我有一个运行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 

远程主机最初是在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