在this page上,PowerShell团队将展示如何在.NET应用程序中托管PowerShell引擎,并向其传递命令。
有没有办法控制创建哪个版本的PowerShell引擎?也许使用v2作为一个脚本,v4作为另一个脚本?
我原本以为InitialSessionState.Create方法会启用它,但它似乎并非如此。
答案 0 :(得分:-1)
我为你做了一个快速的功能,用PowerShell 2.0
在一个作业中执行ScriptBlockFunction 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
告诉我你的想法! ;)