2010-05-07 3 views
2

J'ai vu beaucoup de scripts pour arrêter/démarrer manuellement des services dans une liste, mais comment puis-je générer cette liste par programmation des "services automatiques"? Je veux scripter quelques redémarrages, et je cherche un moyen de vérifier que tout a bien démarré correctement pour tous les services qui étaient supposés le faire.Vérification uniquement des services "automatiques" avec PowerShell

Répondre

11

Get-Service renvoie System.ServiceProcess.ServiceController objets qui n'exposent pas cette information. Ainsi, vous devez utiliser WMI pour ce type de tâche: Get-WmiObject Win32_Service. Exemple qui montre le nécessaire StartMode et formate la sortie d'un panneau de configuration de Windows la:

Get-WmiObject Win32_Service | 
Format-Table -AutoSize @(
    'Name' 
    'DisplayName' 
    @{ Expression = 'State'; Width = 9 } 
    @{ Expression = 'StartMode'; Width = 9 } 
    'StartName' 
) 

Vous êtes intéressé par les services qui sont automatiques, mais pas en cours d'exécution:

# get Auto that not Running: 
Get-WmiObject Win32_Service | 
Where-Object { $_.StartMode -eq 'Auto' -and $_.State -ne 'Running' } | 
# process them; in this example we just show them: 
Format-Table -AutoSize @(
    'Name' 
    'DisplayName' 
    @{ Expression = 'State'; Width = 9 } 
    @{ Expression = 'StartMode'; Width = 9 } 
    'StartName' 
) 
+0

Merci beaucoup, ce qui a été me tracasse le plus long temps et ne pouvait tout simplement pas le comprendre. – Lee

Questions connexes