Если я сбегу get-service
он может возвращать разные статусы (0-4 / Работает, Остановлен, Остановлен, Работает). Могу ли я как-то расширить список возможных значений статуса с помощью командлета PowerShell?
Я попытался сделать это, используя что-то вроде | select $.status -Expand property
, но не смог получить эту информацию.
Я хочу знать, как это сделать (я знаю, что могу найти список возможных значений в документации). Мне нужно использовать эти значения в условиях на последующих этапах моего сценария, и я хочу быть уверенным, что охватил все возможные возвращаемые значения.
Get-Service
вызывает .Net и создает объекты с помощью конструктора в System.ServiceProcess.ServiceController
класс. Вы можете узнать, какого «типа» данные, отправив командлет в Get-Member
как это:
Get-Service | Get-Member
В Get-Member
команда фактически перечисляет методы и свойства объекта, созданного Get-Service, а также его TypeName. Вы можете увидеть TypeName сразу после ввода команды.
Это TypeName соответствует классу .Net, который вы затем используете в Google (на самом деле нет). Вам нужно немного углубиться в страницу msdn, что требует базового понимания объектно-ориентированного программирования (я знаю, другой Google). В конце концов вы должны приземлиться на ServiceControllerStatus - перечисление страница, на которой перечислены все возможные описания значений.
Возвращаемые значения на самом деле являются целыми числами, но .Net достаточно любезен, чтобы превратить эти значения в то, что мы можем понять. Надеюсь, если вы немного попрактикуетесь в этом процессе, вы сможете применить этот же метод для поиска информации о других объектах в PowerShell.