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
2
A
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'
)
Merci beaucoup, ce qui a été me tracasse le plus long temps et ne pouvait tout simplement pas le comprendre. – Lee