Há oito cmdlets Service fundamentais, projetados para uma grande variedade de tarefas de serviço. Examinaremos somente a listagem e a alteração do estado de execução dos serviços, mas você pode obter uma lista dos cmdlets Service usando Get-Help *-Service e pode obter informações sobre cada um deles usando Get-Help <Nome-do-Cmdlet>, como Get-Help New-Service.
Obtendo serviços
Você pode obter os serviços em um computador local ou remoto usando o cmdlet Get-Service. Assim como acontece com Get-Process, o uso de Get-Service sem parâmetros retornará todos os serviços. Você pode filtrá-los por nome, mesmo se utilizar um asterisco como caractere curinga:
PS> Get-Service -Name se* Status Name DisplayName ------ ---- ----------- Running seclogon Secondary Logon Running SENS System Event Notification Stopped ServiceLayer ServiceLayer
Como o nome real do serviço nem sempre é óbvio, talvez você precise encontrar serviços pelo nome de exibição. Você pode fazer isso através de um nome específico, usando curingas ou uma lista de nomes de exibição:
PS> Get-Service -DisplayName se* Status Name DisplayName ------ ---- ----------- Running lanmanserver Server Running SamSs Security Accounts Manager Running seclogon Secondary Logon Stopped ServiceLayer ServiceLayer Running wscsvc Security Center PS> Get-Service -DisplayName ServiceLayer,Server Status Name DisplayName ------ ---- ----------- Running lanmanserver Server Stopped ServiceLayer ServiceLayer
Você pode usar o parâmetro ComputerName de Get-Service para especificar um computador remoto. O parâmetro ComputerName aceita diversos valores e caracteres curinga; assim, você pode obter os serviços em vários computadores com um único comando. Por exemplo, o comando a seguir obtém os serviços no computador remoto Server01.
Get-Service -ComputerName Server01
Obtendo serviços obrigatórios e dependentes
O cmdlet Get-Service tem dois parâmetros que são muito úteis na administração de serviços. O parâmetro DependentServices obtém os serviços que dependem do serviço. O parâmetro RequiredServices obtém os serviços dos quais esse serviço depende.
Esses parâmetros apenas exibem os valores das propriedades DependentServices e ServicesDependedOn (alias=RequiredServices) do objeto System.ServiceProcess.ServiceController retornado por Get-Service, mas simplificam os comandos e tornam a obtenção dessas informações muito mais simples.
O comando a seguir obtém os serviços necessários ao serviço LanmanWorkstation.
PS> Get-Service -Name LanmanWorkstation -RequiredServices Status Name DisplayName ------ ---- ----------- Running MRxSmb20 SMB 2.0 MiniRedirector Running bowser Bowser Running MRxSmb10 SMB 1.x MiniRedirector Running NSI Network Store Interface Service
O comando a seguir obtém os serviços necessários ao serviço LanmanWorkstation.
PS> Get-Service -Name LanmanWorkstation -DependentServices Status Name DisplayName ------ ---- ----------- Running SessionEnv Terminal Services Configuration Running Netlogon Netlogon Stopped Browser Computer Browser Running BITS Background Intelligent Transfer Ser...
Você pode obter até mesmo todos os serviços dependentes. O comando a seguir faz apenas isso e, em seguida, usa o cmdlet Format-Table para exibir as propriedades Status, Name, RequiredServices e DependentServices dos serviços no computador.
Get-Service -Name * | where {$_.RequiredServices -or $_.DependentServices} | Format-Table -Property Status, Name, RequiredServices, DependentServices -auto
Parando, iniciando, suspendendo e reiniciando serviços
Todos os cmdlets Service têm o mesmo formato geral. Os serviços podem ser especificados por nome comum ou nome de exibição e usam listas e curingas como valores. Para parar o spooler de impressão, use:
Stop-Service -Name spooler
Para iniciar o spooler de impressão depois de parado, use:
Start-Service -Name spooler
Para suspender o spooler de impressão, use:
Suspend-Service -Name spooler
O cmdlet Restart-Service funciona da mesma maneira que os outros cmdlets Service, mas mostraremos alguns de seus exemplos mais complexos. Na utilização mais simples, você especifica o nome do serviço:
PS> Restart-Service -Name spooler WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting... WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting... PS>
Você observará que a mensagem de aviso sobre a inicialização do Spooler de Impressão é exibida repetidamente. Quando uma operação de serviço que leva algum tempo é executada, o Windows PowerShell notificará você de que ainda está tentando executá-la.
Caso você queira reiniciar vários serviços, pode obter uma lista deles, filtrá-los e então executar a reinicialização:
PS> Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping... WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping... Restart-Service : Cannot stop service 'Logical Disk Manager (dmserver)' because it has dependent services. It can only be stopped if the Force flag is set. At line:1 char:57 + Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service <<<< WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting... WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
Esses cmdlets Service não têm um parâmetro ComputerName, mas você pode executá-los em um computador remoto usando o cmdlet Invoke-Command. Por exemplo, o comando a seguir reinicia o serviço Spooler no computador remoto Server01.
Invoke-Command -ComputerName Server01 {Restart-Service Spooler}
Definindo propriedades de serviço
O cmdlet Set-Service altera as propriedades de um serviço em um computador local ou remoto. Como o status de serviço é uma propriedade, você pode usar esse cmdlet para iniciar, interromper e suspender um serviço. O cmdlet Set-Service também tem um parâmetro StartupType que permite alterar o tipo de inicialização de serviço.
Para usar Set-Service no Windows Vista e em versões mais recentes do Windows, abra o Windows PowerShell com a opção "Executar como administrador".
Para obter mais informações, consulte Set-Service
See Also