Você pode gerenciar serviços do Windows não apenas a partir da ferramenta de linha de comando services.msc snap-in ou sc.exe, mas também usando o PowerShell. Neste artigo vamos considerar diferentes cenários de gerenciamento de serviços do Windows com o PowerShell.
PowerShell Cmdlets Utilizados para Gerenciar Serviços do Windows
Existem oito cmdlets de serviços básicos para visualizar o estado dos serviços do Windows e gerenciá-los. Para obter a lista completa de cmdlets de gerenciamento de serviços, execute este comando:
Get-Help \*-Service
- Get-Service – permite obter os serviços em um computador local ou remoto tanto no estado de execução quanto no estado de parada;
- New-Service – cria um serviço. O cmdlet cria uma nova entrada para um serviço Windows no registro e no banco de dados do serviço;
- Restart-Service – reinicia um serviço. O cmdlet envia a mensagem de reinício através do Controlador de Serviços do Windows;
- Reiniciar-Serviço – reinicia um serviço. O cmdlet envia uma mensagem de currículo para o Gerenciador de Serviços do Windows;
- Set-Service – altera as configurações de um serviço local ou remoto, incluindo seu estado, descrição, nome exibido ou modo de inicialização. Você também pode usar este cmdlet para iniciar, parar ou suspender um serviço;
- Start-Service – inicia um serviço;
- Stop-Service – pára um serviço (o cmdlet envia uma mensagem de parada para o Gerenciador de serviços do Windows);
- Suspend-Service – suspende um serviço. Um serviço suspenso ainda está em execução, mas ele não faz nada até que seja retomado usando( por exemplo, com o cmdlet Resume-Service).
Você pode obter uma descrição detalhada e exemplos de uso de um cmdlet em particular com o Get-Help:
Get-Help Start-Service
>
Como verificar o status de um serviço do Windows com o Get-Service?
Você pode obter a lista de serviços e seu estado (Running/Stopped) em um computador local ou remoto usando o Get-Service cmdlet. O parâmetro -Name permite selecionar os serviços pelo nome. O nome do serviço pode ser especificado usando o caractere curinga *
.
Se você não souber o nome exato do serviço, você pode encontrá-lo pelo nome exibido usando o parâmetro -DisplayName. Você pode usar a lista de valores e wildcards.
Utilizar o cmdlet Get-Service com o parâmetro -ComputerName para obter o status do serviço em um computador remoto. Você pode consultar o status do serviço em vários computadores remotos ao mesmo tempo, especificando seus nomes separados por vírgulas. Por exemplo, o comando mostrado abaixo obtém o status do serviço do Spooler nos computadores remotos ny-prnt1 e ny-prnt2.
Get-Service spooler –ComputerName ny-prnt1,ny-prnt2
Status Name DisplayName------ ---- -----------Running spooler Print SpoolerStopped spooler Print Spooler
Para exibir todas as propriedades de um serviço, use o cmdlet Select-Object:
Get-Service spooler | Select-Object *
O cmdlet Select-Object permite obter propriedades específicas de um serviço. Por exemplo, você deseja visualizar o nome, status e opções disponíveis do serviço Spooler:
Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*
>
O cmdlet Get-Service tem dois parâmetros que permitem visualizar as dependências do serviço:
- -DependentServices permite exibir os serviços dependentes do serviço dado
- -RequiredServices exibe os serviços dos quais o serviço dado depende
O comando seguinte exibe os serviços necessários para iniciar o serviço Spooler:
Get-Service –Name Spooler -RequiredServices
O seguinte comando mostra os serviços que dependem do Spooler:
Get-Service –Name Spooler -DependentServices
>
>