Script para obter todos os serviços "interrompidos" com o tipo de inicialização "automático" - Windows

0

Portanto, se um serviço tiver um tipo de inicialização "Automático" ou "Manual", mas estiver parado no momento, eu gostaria de executar um comando para ver esses problemas.

No PowerShell e no CMD, consigo ver um ou o outro, mas não há uma maneira fácil de filtrar os dados para o que preciso.

Estou basicamente procurando criar scripts para serviços de resolução de problemas. Ele será capaz de determinar se há algum serviço que deve ser iniciado (com base no tipo de inicialização), mas que não esteja em execução (interrompido ou suspenso).

A questão que estou enfrentando é que o powershell ou o CMD não permitem o filtro ou a tubulação detalhados dos resultados. Alguém tem uma maneira de me ajudar a descobrir isso?

Como posso resolver esse problema?

    
por John 18.10.2016 / 12:56

2 respostas

1

Ao olhar para esta pergunta , você pode encontrar com isso para versões antigas do PowerShell:

Get-WmiObject -Class Win32_Service | Select-Object Name,State,StartMode | Where-Object {$_.State -ne "Running" -and $_.StartMode -eq "Auto"}

Com versões mais recentes (pelo menos 5 talvez 3/4) você também pode usar (o que foi sugerido por JC2k8):

Get-Service | Select-Object -Property Name,Status,StartType | Where-Object {$_.Status -eq "Stopped" -and $_.StartType -eq "Automatic"}

Em versões mais antigas do PowerShell, o cmdlet Get-Service não oferece um membro que tenha o StartType .

O PowerShell suporta muitos recursos de filtragem e tubulação. :)

    
por 18.10.2016 / 13:04
0
(get-service|?{ $_.Status -eq "Stopped" -and $_.StartType -eq "Automatic"})|
select DisplayName, StartType, Status
    
por 18.10.2016 / 13:46