4

我查看了几个问题,但没有找到任何足以适用于我的情况的类似内容(据我所知)。

我有一个 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 会话,我将不胜感激。

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

4

1 回答 1

7

在启动作业以执行 32 位脚本的 x64 C# 应用程序中运行脚本。务必使用-RunAs32开关打开Start-Job。这将需要 PowerShell 2.0 或更高版本。

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

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

于 2013-01-24T19:21:22.827 回答