从x64 C#应用程序调用x86 PowerShell脚本

我已经查看了几个问题,并没有发现任何类似的东西足以适用于我的情况(从我能说的).我有一个x64应用程序(我无法根据设计要求更改架构),它需要在x86架构下调用PowerShell脚本.var runspaceConfiguration = RunspaceCon...

我已经查看了几个问题,并没有发现任何类似的东西足以适用于我的情况(从我能说的).

我有一个x64应用程序(我无法根据设计要求更改架构),它需要在x86架构下调用PowerShell脚本.

var runspaceConfiguration = RunspaceConfiguration.Create();    
var runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();

var pipeline = runspace.CreatePipeline();

var myCommand = new Command(@"MY-COMMAND");
myCommand.Parameters.Add("Path", @"C:\");

pipeline.Commands.Add(myCommand);

return pipeline.Invoke();

如果有人能告诉我如何从C#开始x86-PowerShell会话,我将非常感激.

编辑:一旦我解决了细节,我会用更正的代码更新这个.

解决方法:

在x64 C#app中运行脚本,启动作业以执行32位脚本.务必在Start-Job上使用-RunAs32开关.这将需要PowerShell 2.0或更高版本.

pipeline.Commands.AddScript("Start-Job -Scriptblock { My-Command.exe -Path C:\ } -Name MyCommandJob -RunAs32");

您需要使用Receive-Job -Name MyCommandJob检索结果.

本文标题为:从x64 C#应用程序调用x86 PowerShell脚本

基础教程推荐