Назад | Перейти на главную страницу

Командлет Power-Shell get-service - как расширить возможные значения для статуса службы

Если я сбегу 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.