Como Gerenciar Serviços do Windows via Linha de Comando

Eu sempre busco formas eficientes de gerenciar tarefas do sistema sem sair do terminal, mesmo quando estou usando o Windows. No Windows, os serviços executam em segundo plano para manter o sistema e os aplicativos funcionando suavemente. Ao invés de abrir o Gerenciador de Serviços, eu prefiro gerenciar os Serviços do Windows via linha de comando. Neste guia, vamos explorar esses métodos e ver como você pode gerenciar serviços do Windows diretamente do terminal.
1. Gerenciar Serviços do Windows com sc.exe
sc.exe é uma ferramenta de linha de comando integrada para gerenciar serviços do Windows. Ela permite que você configure, consulte e controle serviços diretamente do terminal. Com sc.exe, você tem controle total sobre os serviços do Windows sem precisar do Gerenciador de Serviços gráfico.
Verificando o status do serviço com sc
Podemos usar o comando sc query serviceName para verificar o status de um serviço específico. Por exemplo, executamos o comando sc query MySQL80 para obter detalhes sobre o serviço MySQL80, incluindo seu estado:

Atualmente, o MySQL não está rodando em nossa máquina.
Iniciando um serviço com sc
Para iniciar um serviço específico usando sc.exe, podemos usar o comando sc start ServiceName. Por exemplo, executamos sc start MySQL80 para iniciar o serviço MySQL80. Para verificar se o serviço foi iniciado com sucesso, podemos verificar seu status usando o comando sc query MySQL80:

Parando um serviço com sc
Você pode parar um serviço para liberar recursos do sistema. Por exemplo, o comando sc stop MySQL80 para a execução do MySQL, o que pode ser verificado usando o comando sc query MySQL80:

Criando um novo serviço com sc
Podemos criar um novo serviço usando o comando sc create. Isso requer especificar o nome do serviço, o caminho executável e o tipo de inicialização. Por exemplo, para criar um novo serviço chamado “mte” que começará automaticamente na inicialização, digite:
sc create mte binPath="C:\Users\HP\Desktop\Examples\Service.exe" start= autoAtualizando um serviço com sc
Podemos usar o comando sc config para configurar um serviço existente. Por exemplo, para mudar o tipo de inicialização para manual, execute o comando:
sc config serviceName start= demandDeletando um serviço com sc
Uma vez que um serviço não é mais necessário, podemos removê-lo permanentemente do Windows usando o comando:
sc delete serviceName2. Gerenciar Serviços do Windows Com Comando Net
O comando net no Windows nos permite gerenciar serviços pela linha de comando. Ele permite aos usuários iniciar, parar, pausar, retomar e consultar serviços sem usar o Gerenciador de Serviços gráfico.
Iniciando e parando serviços com o comando net
Podemos iniciar ou parar serviços do Windows com os comandos net start serviceName e net stop serviceName, respectivamente:

Pausando e retomando serviços com o comando net
Alguns serviços do Windows suportam pausar e retomar em vez de uma parada completa. Nesse caso, podemos usar os comandos net pause ServiceName e net continue ServiceName, respectivamente:

Verificando o status do serviço com o comando net
O comando net em si não fornece uma maneira direta de verificar o status de um serviço específico, mas podemos usá-lo junto com o comando findstr para filtrar os resultados. Por exemplo, para verificar se o serviço especificado está em execução, digite:
net start | findstr "ServiceName"Se o serviço especificado estiver em execução, o comando retorna seu nome; caso contrário, não há saída.
Gerenciar serviços remotamente com o comando net
Podemos usar o comando net para gerenciar serviços em computadores remotos especificando o nome do computador. Por exemplo, os comandos net start ServiceName /S RemotePC e net stop ServiceName /S RemotePC são usados para iniciar ou parar serviços em um computador remoto.
3. Gerenciar Serviços do Windows com Cmdlets do PowerShell
O PowerShell oferece controle mais avançado sobre serviços do Windows com cmdlets integrados como Get-Service, Start-Service, Stop-Service e Restart-Service. Esses cmdlets permitem que os usuários verifiquem o status de um serviço, o iniciem ou parem, e até mesmo o reiniciem quando necessário.
Os cmdlets do PowerShell fornecem uma saída detalhada, incluindo status do serviço, nome de exibição e serviços dependentes. Esses cmdlets permitem scripting e automação, tornando útil para gerenciar vários serviços de forma eficiente.
A flexibilidade e os recursos poderosos do PowerShell fazem dele a ferramenta preferida para administradores que gerenciam serviços do Windows.
Obtendo o status do serviço com cmdlets
Podemos usar o cmdlet Get-Service -Name ServiceName para obter detalhes sobre o serviço especificado. Por exemplo, o seguinte comando retorna o status do serviço MySQL80, mostrando se está em execução ou parado:
Get-Service -Name MySQL80
Consultando serviços com cmdlets do PowerShell
Podemos usar o comando Get-Service para consultar os serviços com base em critérios específicos. Por exemplo, podemos recuperar todos os serviços que estão atualmente em execução usando o comando:
Get-Service | Where-Object { $_.Status -eq 'Running' }
Iniciando e Parando Serviços com cmdlets do PowerShell
Podemos iniciar ou parar um serviço específico usando os cmdlets Start-Service e Stop-Service, respectivamente. Por exemplo, usamos comandos do PowerShell para iniciar, parar e verificar o status do serviço MySQL80:
Start-Service -Name MySQL80
Stop-Service -Name MySQL80
Get-Service -Name MySQL80
Alterando o tipo de inicialização do serviço com cmdlets do PowerShell
Os cmdlets do PowerShell permitem que atualizemos o tipo de inicialização do serviço. Por exemplo, podemos executar os seguintes cmdlets para configurar um serviço para iniciar automaticamente com o sistema, exigir inicialização manual ou ser desabilitado, respectivamente:
Set-Service -Name ServiceName -StartupType Automatic
Set-Service -Name ServiceName -StartupType Manual
Set-Service -Name ServiceName -StartupType DisabledEsses cmdlets ajudam administradores a gerenciar o comportamento do serviço de forma eficiente, garantindo que serviços essenciais iniciem conforme necessário, enquanto serviços desnecessários não são executados.
Gerenciando serviços remotos com cmdlets
O PowerShell também permite gerenciar serviços em computadores remotos especificando os nomes dos computadores remotos. Por exemplo, o comando Get-Service -Name ServiceName -ComputerName RemotePC recupera o status de um serviço específico em execução em um computador remoto chamado RemotePC, permitindo que administradores monitorem serviços remotamente.
Da mesma forma, o comando Restart-Service -Name ServiceName -ComputerName serviceName tenta reiniciar o serviço especificado em um computador remoto. Isso garante que o serviço reinicie sem requerer acesso direto à máquina. No entanto, o gerenciamento remoto de serviços requer permissões apropriadas e o PowerShell remoting deve ser habilitado.
4. Automatizar Tarefas de Gerenciamento de Serviços
Scripts do PowerShell permitem automatizar o gerenciamento de serviços, tornando mais fácil monitorar e controlar serviços do Windows sem intervenção manual. Podemos criar um script que verifica continuamente o status de um serviço específico e o reinicia se ele parar inesperadamente.
Por exemplo, o seguinte script verifica se o serviço MySQL80 está em execução e o reinicia se estiver parado:
$serviceName = "MySQL80"
$service = Get-Service -Name $serviceName
if ($service.Status -ne "Running") {
Restart-Service -Name $serviceName -Force
Write-Output "$serviceName foi parado e foi reiniciado."
} else {
Write-Output "$serviceName já está em execução."
}Por padrão, o Windows restringe a execução de scripts. Para habilitar a execução, primeiro, execute o comando:
Set-ExecutionPolicy RemoteSignedAgora navegue até a localização do script e execute o comando .\serviceScript.ps1 para executar o script:
Gerenciar serviços do Windows pela linha de comando te dá controle total sem depender do Gerenciador de Serviços gráfico. Seja usando sc.exe, net ou cmdlets do PowerShell, cada método oferece formas eficientes de iniciar, parar e configurar serviços.
As capacidades de scripting do PowerShell facilitam a automação, permitindo que você monitore e gerencie serviços de maneira suave. Ao dominar essas ferramentas, você pode resolver problemas, otimizar o desempenho do sistema e garantir que serviços críticos funcionem sem problemas.
Para mais maneiras de otimizar seu sistema Windows e solucionar problemas comuns, confira estes guias sobre consertar problemas do Windows e otimizar seu PC para melhor desempenho.