0

我在使用 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

此脚本由InvokeProcessof执行Microsoft.TeamFoundation.Build.Workflows.Activities

我遇到的问题是,如果我从 dothis.ps1 打印出 Powershell 的版本,我就有 2.0。

但是,如果我从远程脚本 (somSecript.ps1) 中打印出 Powershell 的版本,它会给我 1.0。

我想知道我正在运行的 powershell 的版本,因为以下命令不起作用:$Host.Runspace.ThreadOptions

有人可以解释一下发生了什么吗?谢谢。

4

1 回答 1

4

您正在读取的版本值显然来自注册表,即使您使用的是较新版本的 PS(因为 PS v1 不支持会话)。阅读另一篇 StackOverflow 文章向我指出了$psversiontable,它应该让你得到你所追求的。

于 2012-10-10T15:10:05.210 回答