我已经尝试了一个月来主持PowerShell核心远程处理脚本,它使用SSH协议进行远程处理,在点网核心应用程序中,到目前为止还没有任何效果.我的一个主要问题是,当你在块中使用Powershell远程处理脚本时,系统管理自动化的AddScript方法似乎完全没有做任何事情.
我想知道是否有人真的试图在dot net core C#应用程序中成功托管远程处理脚本?
我实际上在PowerShell github页面中提出了一个问题,但没有人对它感兴趣,因此零注释.
https://github.com/PowerShell/PowerShell/issues/7984
谢谢您的帮助.
我可能已经找到了一个简单的解决方法,我已经测试过并且它有效。
基本上,您不是要求 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 中托管它,我将在这里发布更多信息。
| 归档时间: |
|
| 查看次数: |
433 次 |
| 最近记录: |