在点网核心应用中托管PowerShell核心远程处理?有人让它起作用了吗?

时间:2018-10-22 15:13:57

标签: c# powershell

我已经尝试一个月了,在一个点网核心应用程序中托管使用​​SSH协议进行远程处理的Powershell核心远程处理脚本,到目前为止没有任何效果。我的主要问题之一是,当您在块中拥有Powershell远程处理脚本时,系统管理自动化的AddScript方法似乎什么也没做。

我想知道是否有人真的成功地在点网核心C#应用程序中托管了远程处理脚本?

PowerShell github页面上确实出现了一个问题,但是没有人对此感兴趣,因此零评论。

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

谢谢您的帮助。

1 个答案:

答案 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中测试托管此信息,我将在此处发布更多信息。