Comando get-service do Power-Shell - como expandir os valores possíveis para o status do serviço

2

Se eu executar get-service , ele poderá retornar diferentes status (0-4 / Em execução, Interrompido, Parando, Em execução). Posso de alguma forma expandir uma lista de valores possíveis para o status emitindo o commandlet do PowerShell?

Eu tentei fazer isso usando algo como | select $.status -Expand property , mas não consegui obter essa informação.

Eu quero saber como fazer isso dessa maneira (eu sei que posso encontrar uma lista de valores possíveis na documentação). Preciso usar esses valores em condições nas etapas subsequentes do meu script e quero ter certeza de que cobri todos os valores possíveis retornados.

    
por Mikhail 29.10.2015 / 13:24

1 resposta

2

Get-Service chama .Net e cria objetos usando um construtor na classe System.ServiceProcess.ServiceController . Você pode descobrir o que "digitar" os dados, canalizando o cmdlet para Get-Member da seguinte forma:

Get-Service | Get-Member

O comando Get-Member está, na verdade, enumerando os métodos e as propriedades do objeto criado por Get-Service, bem como seu TypeName. Você pode ver o TypeName imediatamente após digitar o comando.

Esse TypeName corresponde a uma classe .Net que você usa no Google (não, na verdade). Você tem que perfurar a página msdn um pouco que requer uma compreensão básica de programação orientada a objeto (eu sei, outro google). Eventualmente, você deve acessar a página Enumeração do ServiceControllerStatus que lista todas as descrições de valores possíveis.

Os valores retornados são na verdade inteiros, mas o .Net é gentil o bastante para transformar esses valores em algo que possamos entender. Espero que se você praticar este processo um pouco, você poderá aplicar este mesmo método para encontrar informações sobre outros objetos no powershell.

    
por 29.10.2015 / 14:43

Tags