我认为我有PowerShell的2的最新CTP但是当我尝试的命令: 调用表达-computername Server01上-command“得到处理PowerShell的”PowerShell的调用,表达缺失PARAM
我得到一个错误消息: 找不到与参数名称“computername”匹配的参数。
所以问题是:如何知道我安装了哪个版本的PowerShell?最新版本是什么?
我认为我有PowerShell的2的最新CTP但是当我尝试的命令: 调用表达-computername Server01上-command“得到处理PowerShell的”PowerShell的调用,表达缺失PARAM
我得到一个错误消息: 找不到与参数名称“computername”匹配的参数。
所以问题是:如何知道我安装了哪个版本的PowerShell?最新版本是什么?
$host.version.tostring()
将返回版本号。
RTM V1的是1.0.0.0
不能诚实地告诉你什么是预览的是最新版本的,因为我还没有机会发挥还。
最新的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版本号,但我可以找到它,如果你真的需要它。
我猜这是对配置过程Configure-Wsman.ps1期间所做的cmdlet的更改。我现在没有环境设置来测试,但我猜测配置出了问题。我可以验证在XP上该参数不可用(duh)。我假设你会发现Vista/08上没有完成配置。
的问题是,从CTP 1至CTP2,他们交换了调用的东西,所有的远程东西是通过Invoke-Command
做,现在,Invoke-Expression
完全是为了把一个字符串转换成剧本;)
PS:如果您使用的是V2版本,则可以运行$PSVersionTable
以查看包括CLR和Build版本的版本列表。
从昨晚的版本(这意味着你可能有这样的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管理合伙人建筑师
如果$PSVersionTable
变量不存在,那么你正在运行V1。
如果存在,则该版本将作为$PSVersionTable.PSVersion
。
function Get-PSVersion {
if (test-path variable:psversiontable)
{$psversiontable.psversion}
else
{[version]"1.0.0.0"}
}