在dot net core app中托管PowerShell核心远程处理?有人让它工作了吗?

Jus*_*iii 8 c# powershell

我已经尝试了一个月来主持PowerShell核心远程处理脚本,它使用SSH协议进行远程处理,在点网核心应用程序中,到目前为止还没有任何效果.我的一个主要问题是,当你在块中使用Powershell远程处理脚本时,系统管理自动化的AddScript方法似乎完全没有做任何事情.

我想知道是否有人真的试图在dot net core C#应用程序中成功托管远程处理脚本?

我实际上在PowerShell github页面中提出了一个问题,但没有人对它感兴趣,因此零注释.

https://github.com/PowerShell/PowerShell/issues/7984

谢谢您的帮助.

Jus*_*iii 1

我可能已经找到了一个简单的解决方法,我已经测试过并且它有效。

基本上,您不是要求 dot net 应用程序通过 .AddScript 方法调用远程脚本,而是要求 dot net 应用程序调用执行远程脚本的本地 powershell 进程。脚本文件应该位于您执行应用程序的服务器上的某个位置。为了将其显示为代码,我使用以下代码。

string script  = "start-process pwsh-preview" -argument "path to script file"
using (Runspace runspace = RunspaceFactory.CreateRunspace())
using (Powershell powershell = Powershell.Create())
{
runspace.Open();
PSCommand command = new PSCommand();
command.AddScript(script);
 powershell.Commands = command;
powerhell.Runspace = runspace;
Collection<PSObject> results = new Collection<PSObject>();
results = powershell.Invoke();
Run Code Online (Sandbox Code Playgroud)

我还没有测试使用参数调用脚本(不知道如何做到这一点,但也许这里有人可以提供帮助)。以及将整个事情托管在 docker 容器中。最有可能的是,需要在 docker 镜像中安装 PowerShell 核心以及 dot net core 才能正常工作。

希望这有帮助。

我仍在等待 GitHub PowerShell 人员查看该问题。一旦我测试在 docker 中托管它,我将在这里发布更多信息。