从c#Management.Automation.Runspaces远程启动Powershell脚本

时间:2015-01-28 15:54:06

标签: c# powershell winrm

我正在尝试远程执行传入object参数的powershell脚本。我已成功设法完成此操作,但现在我想启动脚本,断开远程会话并让powershell脚本继续在远程计算机上执行。不幸的是我无法做到这一点。

到目前为止,这是我的代码,这成功运行了远程PowerShell脚本,但是如果我处理了我的会话,那么powershell脚本也会停止执行:

PowerShell ps = PowerShell.Create();
ps.Runspace = _runspace;
ps.AddCommand(scriptPath);

if (scriptParameters != null)
{
    foreach (var parameter in scriptParameters)
    {
        ps.AddParameter(parameter.Key, parameter.Value);
    }
}

ps.Invoke();

即使断开远程会话,我怎样才能启动.ps1脚本并使其保持运行?

1 个答案:

答案 0 :(得分:0)

您只能使用Powershell 3+执行此操作。我还没有测试过它,但我想连接的两端都需要支持断开连接的会话。

在.Net中,您使用Runspace.Disconnect Method

Powershell等效值为Disconnect-PSSession