Моя цель - запустить задачу на удаленном сервере, для этого я хотел бы использовать WinRM.Возникли проблемы с выполнением этой работы.
Запуск из окна powershell работает нормально, если вы делаете это следующим образом.
New-PSSession -ComputerName y49800 | Enter-PSSession
E:
E:\work\application.exe
Выполнение этого из C # - другая история.Перепробовал много вариантов, но ничего не работает.В качестве шага я попытался запустить первую команду, как указано ниже.Похоже, что он работает нормально, но если я изменю имя domputer на что-то, что не существует, это выдаст мне ошибку вывода.Мне также нужно выполнить следующие шаги, где я меняю диск и запускаю свою программу.
try {
using (PowerShell PowerShellInstance = PowerShell.Create()) {
// use "AddScript" to add the contents of a script file to the end of the execution pipeline.
// use "AddCommand" to add individual commands/cmdlets to the end of the execution pipeline.
var instance = PowerShellInstance.AddScript(@"New-PSSession -ComputerName y49800 | Enter-PSSession");
//// use "AddParameter" to add a single parameter to the last command/script on the pipeline.
//PowerShellInstance.AddParameter("param1", "parameter 1 value!");
// invoke execution on the pipeline (collecting output)
Collection <PSObject> PSOutput = instance.Invoke();
// loop through each output object item
foreach (PSObject outputItem in PSOutput) {
// if null object was dumped to the pipeline during the script then a null
// object may be present here. check for null to prevent potential NRE.
if (outputItem != null) {
//TODO: do something with the output item
test = outputItem.ToString();
}
}
}
} catch (Exception exc) {
System.Console.WriteLine(exc.Message);
}