Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este exemplo só se aplica ao Windows PowerShell 5.1.
Há oito cmdlets principais do Service, projetados para uma ampla gama de tarefas de serviço. Este artigo analisa apenas a listagem e a alteração do estado de execução dos serviços. Pode obter uma lista dos cmdlets de serviço usando Get-Command *-Service
. Você pode encontrar informações sobre cada cmdlet usando Get-Help <Cmdlet-Name>
, como Get-Help New-Service
.
Obter serviços
Você pode obter os serviços em um computador local ou remoto usando o cmdlet Get-Service
. Tal como acontece com Get-Process
, usar o comando Get-Service
sem parâmetros retorna todos os serviços. Você pode filtrar por nome, mesmo usando um asterisco como curinga:
PS> Get-Service -Name se*
Status Name DisplayName
------ ---- -----------
Running seclogon Secondary Logon
Running SENS System Event Notification
Stopped ServiceLayer ServiceLayer
Como nem sempre é aparente qual é o nome real do serviço, você pode achar que precisa encontrar serviços por nome de exibição. Você pode pesquisar por nome específico, usar curingas ou fornecer uma lista de nomes para 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
Obter serviços remotos
Com o Windows PowerShell, você pode usar o parâmetro ComputerName do cmdlet Get-Service
para obter os serviços em computadores remotos. O parâmetro ComputerName aceita vários valores e caracteres curinga, para que você possa 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
A partir do PowerShell 6.0, os cmdlets *-Service
não têm o parâmetro ComputerName. Você ainda pode obter serviços em computadores remotos com a comunicação remota do PowerShell. Por exemplo, o comando a seguir obtém os serviços no computador remoto Server02.
Invoke-Command -ComputerName Server02 -ScriptBlock { Get-Service }
Você também pode gerenciar serviços com os outros cmdlets *-Service
. Para obter mais informações sobre a remoçao do PowerShell, consulte about_Remote.
Obter serviços necessários e dependentes
O cmdlet Get-Service tem dois parâmetros que são muito úteis na administração do serviço. O parâmetro DependentServices obtém serviços que dependem do serviço.
O parâmetro RequiredServices obtém serviços dos quais o serviço LanmanWorkstation depende.
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 parâmetro DependentServices obtém serviços que exigem o 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...
O comando a seguir obtém todos os serviços que têm dependências. O cmdlet Format-Table
para exibir as propriedades Status, Name, RequiredServicese DependentServices dos serviços.
Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} |
Format-Table -Property Status, Name, RequiredServices, DependentServices -Auto
Parar, iniciar, suspender e reiniciar serviços
Todos os cmdlets Service têm a mesma forma geral. Os serviços podem ser especificados por nome comum ou nome de exibição e aceitar listas e coringas como valores. Para parar o spooler de impressão, utilize:
Stop-Service -Name spooler
Para iniciar o spooler de impressão depois de parado, utilize:
Start-Service -Name spooler
Para suspender o spooler de impressão, utilize:
Suspend-Service -Name spooler
O cmdlet Restart-Service
funciona da mesma maneira que os outros cmdlets Service:
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>
Nota que recebes uma mensagem repetida de aviso sobre a inicialização do Spooler de Impressão. Quando você executa uma operação de serviço que leva algum tempo, o PowerShell notifica que ainda está tentando executar a tarefa.
Se quiser reiniciar vários serviços, você pode obter uma lista de serviços, filtrá-los e, em seguida, 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 : can't 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}
Definir propriedades do serviço
O cmdlet Set-Service
altera as propriedades de um serviço em um computador local ou remoto. Como o status do serviço é uma propriedade, você pode usar esse cmdlet para iniciar, parar e suspender um serviço.
O cmdlet Set-Service também tem um parâmetro StartupType que permite alterar o tipo de inicialização do serviço.
Para usar o Set-Service
no Windows Vista e em versões posteriores do Windows, abra o PowerShell com a opção Executar como administrador opção.
Para obter mais informações, consulte Set-Service
Ver também
- sobre_Remoto
- Get-Service
- Set-Service
- Reiniciar-Serviço
- de Suspensão de Serviço