以版本2运行远程Powershell会话

时间:2015-11-06 03:56:51

标签: powershell powershell-v2.0 powershell-v3.0

我在运行Powershell版本2的服务器上:

PS C:\> $PSVersionTable

Name      Value
----      -----
...
PSVersion 2.0

然后我创建一个到另一台计算机的新远程会话并连接到它:

$sess = New-PSSession -ComputerName {ComputerName} -Credential $credential

它返回结果:

PS C:\> Invoke-Command -Session $sess -ScriptBlock { $PSVersionTable }

Name      Value
----      -----
...
PSVersion 3.0

但是,我需要Powershell在我的脚本的版本2中,所以我进入一个会话(以使其更容易)。然后我尝试让Powershell成为版本2:

C:\> Enter-PSSession -Session $sess
[{ComputerName}]: PS C:\> Powershell -Version 2
Windows Powershell
Copyright (C) 2009 Microsoft Corporation. All rights reserverd

然后它就会挂起(或者至少从来没有让我在控制台中输入任何其他内容,直到我按Ctrl-C)。

我也试过了Invoke-Command:

PS C:\> Invoke-Command -Session $sess -ScriptBlock { Powershell -version 2 }

并且它也是如此。

我还尝试按照此处注册PSSessionConfiguration:https://technet.microsoft.com/en-us/library/hh847899.aspx

PS C:\> Register-PSSessionConfiguration -Name PS2 -PSVersion 2.0

但我明白了:

Register-PSSessionConfiguration: a parameter cannot be found that matches parameter name 'PSVersion'.

有没有人对我接下来会尝试什么有任何想法?! 感谢

1 个答案:

答案 0 :(得分:0)

我认为以下内容不起作用:

 #Requires -version 2.0

您可以尝试的其他方法是在目标上创建计划任务,并使用Powershell.exe -version 2

让您的脚本执行任务