Удаленный запуск сценария Powershell из c# Management.Automation.Runspaces

Я пытаюсь удаленно выполнить сценарий 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 и оставить его работающим, даже если я отключу удаленный сеанс?


person Francium123    schedule 28.01.2015    source источник


Ответы (1)


Вы можете сделать это только с Powershell 3+. Я не проверял это, но полагаю, что обе стороны соединения должны поддерживать отключенные сеансы.

В .Net вы должны использовать Runspace.Disconnect Метод.

Эквивалентом Powershell будет Disconnect-PSSession.

person briantist    schedule 29.01.2015