我已经尝试一个月了,在一个点网核心应用程序中托管使用SSH协议进行远程处理的Powershell核心远程处理脚本,到目前为止没有任何效果。我的主要问题之一是,当您在块中拥有Powershell远程处理脚本时,系统管理自动化的AddScript方法似乎什么也没做。
我想知道是否有人真的成功地在点网核心C#应用程序中托管了远程处理脚本?
PowerShell github页面上确实出现了一个问题,但是没有人对此感兴趣,因此零评论。
https://github.com/PowerShell/PowerShell/issues/7984
谢谢您的帮助。
答案 0 :(得分:0)
我可能已经找到了经过测试的简单变通方法,并且可以正常工作。
基本上,不是让Don 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();
我尚未测试使用参数调用脚本(不确定如何执行此操作,也许有人可以提供帮助)。以及将整个事情托管在docker容器中。要使其正常工作,很有可能需要在Docker映像中安装PowerShell核心以及点网核心。
希望获得帮助。
我仍在等待GitHub PowerShell专家查看问题。 一旦在docker中测试托管此信息,我将在此处发布更多信息。