2008-08-15 68 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"} 
}