我认为我有最新的PowerShell 2 CTP但是当我尝试命令时:
invoke-expression –computername Server01 –command 'get-process PowerShell'
我收到一条错误消息:
找不到与参数名称'computername'匹配的参数。
所以问题是:我怎样才能知道我安装了哪个版本的PowerShell?最新版本是什么?
答案 0 :(得分: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
实验!请享用!接合!
Jeffrey Snover [MSFT] Windows管理合作伙伴架构师
答案 1 :(得分:2)
$host.version.tostring()
将返回版本号。
v1的RTM是1.0.0.0
不能老实告诉你预览的最新版本是什么,因为我还没有机会参加比赛。
答案 2 :(得分:2)
问题是从CTP 1到CTP2,他们切换了Invoke的东西,所有远程处理的东西现在通过Invoke-Command
完成,而Invoke-Expression
仅用于将字符串转换为脚本; )
P.S。:如果您使用的是v2,则可以运行$PSVersionTable
查看包含CLR和Build版本的版本列表。
答案 3 :(得分:1)
最新的CTP是在02/02/08发布的CTP2,可以找到here。远程处理需要在呼叫计算机和目标计算机上安装WinRM。 CTP中包含一个配置WS-Management的脚本,名为Configure-WSMan.ps1。
此命令应该为您提供已安装的PowerShell的版本号。 Get-Command“$ PSHome \ powershell.exe”| Format-List FileVersionInfo V1.0是6.0.5430.0 CTP2是6.1.6585.1
我手边没有第一个CTP的版本号,但是如果你真的需要它我会找到它。
答案 4 :(得分:0)
我猜这是对配置过程Configure-Wsman.ps1期间制作的cmdlet的更改。我没有现在要测试的环境设置,但我猜测配置出了问题。我可以验证XP上的参数不可用(duh)。我假设如果没有配置完成,你会在Vista / 08上找到相同的内容。
答案 5 :(得分:0)
如果$PSVersionTable
变量不存在,那么您正在运行V1。
如果存在,则该版本将以$PSVersionTable.PSVersion
的形式提供。
function Get-PSVersion {
if (test-path variable:psversiontable)
{$psversiontable.psversion}
else
{[version]"1.0.0.0"}
}