26 de novembro de 2018 Luciano Gusso Suporte, Tutorial, Windows
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)".
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.
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>.
Reparem que aparecerá a lista de todos os serviços configurados no Windows e que podem estar sendo executados ou, no momento, estarem parados.
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 (*).
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.
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.
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>.
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.
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.
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.
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!
Vinicius Giacomini dezembro 6, 2018 às 9:35 am
Excelente artigo técnico! Bastante detalhado e com boa didática. Muito obrigado pelas informações, são úteis para nosso aprendizado em PowerShell.