托管多个PowerShell版本

时间:2015-05-05 19:47:13

标签: .net powershell

this page上,PowerShell团队将展示如何在.NET应用程序中托管PowerShell引擎,并向其传递命令。

有没有办法控制创建哪个版本的PowerShell引擎?也许使用v2作为一个脚本,v4作为另一个脚本?

我原本以为InitialSessionState.Create方法会启用它,但它似乎并非如此。

1 个答案:

答案 0 :(得分:-1)

我为你做了一个快速的功能,用PowerShell 2.0

在一个作业中执行ScriptBlock
Function Execute-Job ([scriptblock]$ScriptBlock, [array]$ArgumentList, [switch]$PassThru, [switch]$PS2) {


    If ($PS2) { $Job = Start-Job -ScriptBlock $ScriptBlock -ArgumentList $ArgumentList -PSVersion 2.0 }
         Else { $Job = Start-Job -ScriptBlock $ScriptBlock -ArgumentList $ArgumentList }

    If ($PassThru) { $Job | Receive-Job -Wait -AutoRemoveJob } 
              Else { $Job }

} #End Function Execute-Job

$ScriptBlock = { $PSVersionTable }
Execute-Job $ScriptBlock -PassThru -Ps2

此回报:

Name                           Value                                                                                                                                                                                                
----                           -----                                                                                                                                                                                                
PSRemotingProtocolVersion      2.1                                                                                                                                                                                                  
BuildVersion                   6.1.7601.17514                                                                                                                                                                                       
PSCompatibleVersions           {1.0, 2.0}                                                                                                                                                                                           
PSVersion                      2.0          <----------                                                                                                                                                                                                 
CLRVersion                     2.0.50727.5485                                                                                                                                                                                       
WSManStackVersion              2.0                                                                                                                                                                                                  
SerializationVersion           1.1.0.1    

告诉我你的想法! ;)