我使用Powershell进行远程处理有一个奇怪的问题。
我有一个名为dothis.ps1的脚本,它执行以下操作:
$s = New-PSSession -ComputerName $someServer -Authentication CredSSP -Credential $credential
$result = Invoke-Command -Session $s { param($dropLocation) C:\somScript.ps1 @PSBoundParameters } -ArgumentList $DropLocation
此脚本由InvokeProcess
Microsoft.TeamFoundation.Build.Workflows.Activities
执行
我遇到的问题是,如果我从dothis.ps1打印出Powershell的版本,我就有2.0。
但是如果我从远程脚本(somSecript.ps1)打印出Powershell的版本,它会给我1.0。
我想知道我正在运行的powershell的版本,因为以下命令不起作用:$Host.Runspace.ThreadOptions
有人可以解释一下发生了什么吗?感谢。
答案 0 :(得分:4)
您正在阅读的版本值显然来自注册表,即使您使用的是较新版本的PS(因为PS v1不支持会话)。阅读this other StackOverflow article向我指出了$psversiontable
,这应该可以让您完全了解自己所追求的目标。