Довольно плохо знаком с C #, и я пытаюсь написать простой инструмент, который проверяет определенные роли и функции на сервере и показывает, установлены они или нет.Просто!
Проблема в том, что я не могу на всю жизнь понять, как записать значение установленного состояния этой команды Powershell (отформатировано в строке C #):
"Get-WindowsFeature | ? {$_.Name -match \"Web-Mgmt-Console\"} | Select -exp Installed State"
Командасам запускается в Powershell (когда \ удаляются) и просто возвращает "false".Мой код пытается захватить этот результат.
cmd = "Get-WindowsFeature | ? {$_.Name -match \""+winFeatures[i]+
"\"} | Select -exp Installed State";
cmdout = ps.AddScript(cmd).Invoke().ToString();
Вместо установленного состояния значение в VS cmdout отображается как "System.Collections.ObjectModel.Collection1[System.Management.Automation.PSObject]"
, что, я думаю, здорово.Я понимаю, что .Invoke () вернет коллекцию, поэтому .ToString()
должен взять результат ("True" или "False" и вернуть его в cmdout в виде строки.
Чего мне не хватаетздесь? Удивительно, что Powershell может быть настолько простым в оболочке, но таким сложным в C#
. Я искал и читал в течение 2 дней и не смог понять это.