Como gerenciar Serviços no Windows com o PowerShell

Opa, pessoal!

Continuando com os tutoriais sobre CMDLETS do PowerShell para gerenciamento do sistema, estarei demonstrando aqui como gerenciar os serviços do Windows 10.

Como sabemos, o PowerShell é um shell robusto e poderoso destinado a administradores de sistemas para se trabalhar via linha de comando (CMDLET) ou via scripts que podem ser criados no PowerShell ISE. Este shell é utilizado tanto para as tarefas mais simples como também para as mais complexas. Esta ferramenta vinha antes somente nas edições do Windows Server, mas agora já está incorporada também no Windows 10.

Gerenciando Serviços do Windows no PowerShell com “get-service”

Primeiramente iremos executar o PowerShell com permissões elevados para que o CMDLET seja executado com êxito.

Para isso, iremos clicar com o botão direito do mouse na logo do menu do Windows, situado no canto inferior esquerdo da área de trabalho e depois clicar com o botão esquerdo em “Windows PowerShell (Admin)”.

Get-ServicePS_01

Como estamos querendo executar com permissões administrativas, irá aparecer a janela de Controle de Conta de Usuário onde iremos clicar em “Sim” para permitir que o Windows PowerShell faça alterações no sistema.

Get-ServicePS_02

O comando para listar todos os serviços que estão configurados no sistema é “get-service“, o qual iremos digitar e em seguida pressionar a tecla <enter>.

PowerShell CMDLET: get-service

Reparem que aparecerá a lista de todos os serviços configurados no Windows e que podem estar sendo executados ou, no momento, estarem parados.

PowerShell CMDLET: get-service

Supondo, como exemplo, que temos um serviço em específico que queremos deixá-lo parado. Neste meu caso, é o SQLEXPRESS.

Para para o serviços, preciso saber o nome correto deste processo. Então irei filtrar digitando o seguinte comando: “get-service *sql*” e em seguida pressionarei a tecla <enter>. Reparem que, para pesquisar por um trecho do nome, colocamos este pedaço entre astericos (*). 

PowerShell CMDLET: get-service

Como resultado, foram filtrados somente os serviços que tem SQL no nome e que estão executados ou parados.

Se quiser ainda filtrar os serviços SQL e mostrar só os que estão sendo executados, iremos utilizar o comando “get-service *sql* | where { $_.status -eq ‘running’ }“, seguido de pressionar a tecla <enter>. O pipeline ( | ) serve para concatenar comandos.

PowerShell CMDLET: get-service

Como queremos parar o primeiro serviço listado, que é o MSSQL$SQLEXPRESS, iremos digitar o comando “stop-service ‘MSSQL$SQLEXPRESS’” seguido de pressionar a tecla <enter>. Como neste caso temos um caractere especial no nome, que é o cifrão ($), teremos que colocá-lo entre apóstrofe. Se quiséssemos parar o SQLWriter, poderíamos digitar o comando “get-service SQLWriter<enter>

Depois que o comando foi executado com êxito, retornará ao prompt do PowerShell como é mostrada na imagem abaixo.

PowerShell CMDLET: get-service

Se, por exemplo, quisermos saber quais serviços SQL estão parados, digitaremos o comando “get-service *sql* | where { $_.status -eq ‘stopped’ }” e ao final do comando sempre pressionando a tecla <enter>.

PowerShell CMDLET: get-service

Se quisermos filtrar um serviço em específico que está sendo executado e na mesma linha parar este serviço, usaremos o pipeline ( | ) para concatenar estes comandos. Com o SQL como exemplo ficaria da seguinte forma: “get-service *sql* | where { $_.status -eq ‘running’ } |  stop-service” seguido de pressionar <enter>.

Os comando sendo executados com êxito, voltará para o prompt de comando.

PowerShell CMDLET: get-service

Se quisermos iniciar o serviço do SQL novamente, digitaremos o comando “start-service ‘MSSQL$SQLEXPRESS‘” seguido de pressionar a tecla <enter>. Iremos notar que aparecerá a mensagem que o serviço solicitado está sendo iniciado.

PowerShell CMDLET: get-service

Se quisermos saber maiores informações sobre um serviço em específico, que neste exemplo é o SQLWriter, iremos digitar o seguinte comando: “get-service sqlwriter | select-object *” seguido de <enter>. A instrução após o pipeline trará maiores informações sobre o serviço solicitado.

PowerShell CMDLET: get-service

Espero que este artigo forneça conhecimento suficiente para você gerenciar serviços do Windows via PowerShell usando o comando get-service.

Leia outros artigos relacionados ao PowerShell

Caso tenha dúvidas ou complementos, deixe seu comentário abaixo!

Luciano Gusso

Mais artigos deste autor »

Formado em Analise e Desenvolvimento de Sistemas, com MBA em Gestão de Projetos.
Trabalhando há mais de 20 anos na área de TI, prestando suporte técnico e consultoria à empresas e usuários finais.


1 Comentários

Vinicius Giacomini
1

Bom dia!
Excelente artigo técnico! Bastante detalhado e com boa didática. Muito obrigado pelas informações, são úteis para nosso aprendizado em PowerShell.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!