Vous connaissez déjà Get-Process depuis la leçon 1.4. Sophie vous emmène cette fois du côté des services Windows — ces programmes qui tournent en arrière-plan, sans fenêtre, souvent essentiels au bon fonctionnement d’un serveur (impression, mise à jour, base de données…).
Les processus : agir, pas seulement observer
Au-delà de Get-Process vu en section 1 et 2, on peut aussi agir directement sur un processus en cours d’exécution.
Arrêter un processus par son nom ou son identifiant (PID) :
Stop-Process -Name "notepad"
Stop-Process -Id 4532Si un processus ne répond plus et refuse de s’arrêter proprement, -Force insiste :
Stop-Process -Name "notepad" -ForceComme pour
Remove-Item,Stop-Processest une action immédiate et irréversible pour l’utilisateur (le travail non enregistré dans l’application est perdu). Le réflexe-WhatIffonctionne aussi ici, à tester avant toute automatisation sur un poste de production.
Les services : le cœur de l’administration système
Les services suivent exactement la même logique Verbe-Nom vue en 2.1. Lister tous les services :
Get-ServiceCibler un service précis :
Get-Service -Name "Spooler"Démarrer, arrêter, redémarrer :
Start-Service -Name "Spooler"
Stop-Service -Name "Spooler"
Restart-Service -Name "Spooler"Modifier le comportement au démarrage d’un service
Set-Service permet de changer le type de démarrage (Automatic, Manual, Disabled) :
Set-Service -Name "Spooler" -StartupType AutomaticC’est exactement le genre de réglage qu’on a filtré au TP de la section 2 : repérer les services Stopped dont le StartType est Automatic (un service qui aurait dû démarrer tout seul, mais qui a échoué).
Agir sur un serveur distant
La plupart de ces cmdlets acceptent un paramètre -ComputerName, pour agir sans avoir à se connecter physiquement au serveur concerné (on approfondira les vraies sessions distantes en section 7 avec le Remoting) :
Get-Service -Name "Spooler" -ComputerName "SRV-02"Ce paramètre
-ComputerNamea ses limites (protocole ancien, souvent bloqué par les pare-feux modernes) — c’est justement pour ça qu’on lui préféreraInvoke-Commandet le Remoting en section 7 pour un usage professionnel sérieux.
Un exemple concret Nordika
$servicesCritiques = "Spooler", "W32Time", "Dnscache"
foreach ($nomService in $servicesCritiques) {
$service = Get-Service -Name $nomService
if ($service.Status -ne "Running") {
Write-Warning "$nomService est arrêté, tentative de redémarrage..."
Start-Service -Name $nomService
} else {
Write-Output "$nomService fonctionne normalement"
}
}Ce script (dont le if/else sera détaillé en section 5) vérifie un lot de services critiques et relance automatiquement ceux qui seraient arrêtés — un vrai script de supervision basique, tel qu’on pourrait le planifier en section 8.
Retenez le parallèle avec la leçon 4.1 : processus et services ne passent pas par un Provider de type « lecteur » comme
FileSystemouRegistry, mais suivent la même philosophie de cmdlets Verbe-Nom cohérentes (Get-,Start-,Stop-,Restart-,Set-).
Dans la prochaine leçon, on passe à la gestion des utilisateurs et groupes locaux.