Вот код:
static String checkBackUp()
{
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.Add("Get-WBSummary");
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = new Collection<PSObject>();
try
{
results = pipeline.Invoke();
}
catch (Exception ex)
{
results.Add(new PSObject((object)ex.Message));
}
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in results)
{
stringBuilder.AppendLine(obj.ToString());
}
return stringBuilder.ToString();
}
Проблема в том, что при этом выполняется каждый командлет (например, Get-Process
), но когда я пытаюсь проверить, было ли выполнено резервное копирование (Get-WBSummary
), он выдает следующую ошибку:
Термин «Get-WBSummary» не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.
Однако, когда я помещаю команду прямо в PowerShell, она выполняет ее. Я уже пытался добавить SnapIn, но это не сработало.
Что я здесь не так делаю?