« Si un service est Running, l’application fonctionne forcément. »
L’état du service confirme seulement son état de contrôle. Il faut aussi vérifier dépendances, événements, ports, fichiers et résultat attendu.
01Observe les services
Get-Service |
Sort-Object Status, DisplayName |
Select-Object Status, Name, DisplayName
Get-CimInstance Win32_Service |
Select-Object Name, State, StartMode, StartName, PathName
Get-Service est rapide pour l’état. CIM expose davantage d’informations : compte de service, chemin binaire et mode de démarrage.
02Analyse un service précis
$serviceName = 'Spooler'
Get-Service -Name $serviceName |
Format-List Name, DisplayName, Status, StartType,
ServicesDependedOn, DependentServices
Get-CimInstance Win32_Service -Filter "Name='$serviceName'" |
Format-List Name, State, StartMode, StartName, PathName, ProcessId
03Lis les événements récents
Get-WinEvent -LogName System -MaxEvents 30 |
Select-Object TimeCreated, Id, LevelDisplayName,
ProviderName, Message
$start = (Get-Date).AddHours(-2)
Get-WinEvent -FilterHashtable @{
LogName = 'System'
StartTime = $start
Level = 2,3
} | Select-Object TimeCreated, Id, LevelDisplayName,
ProviderName, Message
Le niveau Error ou Warning réduit le bruit, mais ne suffit pas toujours. Une ligne Information juste avant l’erreur peut expliquer la transition.
04Filtre par fournisseur
Get-WinEvent -FilterHashtable @{
LogName = 'System'
ProviderName = 'Service Control Manager'
StartTime = (Get-Date).AddDays(-1)
} | Select-Object TimeCreated, Id, LevelDisplayName, Message
Note l’Event ID, mais ne l’interprète jamais seul : le fournisseur et le message déterminent son sens réel.
05Crée une tâche de laboratoire
$labRoot = 'C:\SORIA-Labs\Windows-Foundations'
$action = New-ScheduledTaskAction \
-Execute 'PowerShell.exe' \
-Argument "-NoProfile -Command \"Get-Date | Out-File '$labRoot\\task-proof.txt' -Append\""
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(2)
Register-ScheduledTask \
-TaskName 'SORIA-Lab-Proof' \
-Action $action \
-Trigger $trigger \
-Description 'Tâche réversible du laboratoire SORIA'
06Vérifie exécution et résultat
Get-ScheduledTask -TaskName 'SORIA-Lab-Proof'
Get-ScheduledTaskInfo -TaskName 'SORIA-Lab-Proof'
Get-Content 'C:\SORIA-Labs\Windows-Foundations\task-proof.txt'
Le champ LastTaskResult doit être interprété avec l’historique de la tâche et la preuve produite.
07Consulte le journal Task Scheduler
Get-WinEvent -FilterHashtable @{
LogName = 'Microsoft-Windows-TaskScheduler/Operational'
StartTime = (Get-Date).AddHours(-1)
} | Where-Object Message -Match 'SORIA-Lab-Proof' |
Select-Object TimeCreated, Id, LevelDisplayName, Message
Si le journal Operational est désactivé, active-le seulement dans la VM de laboratoire via Event Viewer ou wevtutil, puis documente ce changement.
08Nettoie la tâche
Unregister-ScheduledTask -TaskName 'SORIA-Lab-Proof' -Confirm:$true
Remove-Item 'C:\SORIA-Labs\Windows-Foundations\task-proof.txt' \
-ErrorAction SilentlyContinue
09Actualise l’inventaire
.\module1-windows-foundations.ps1 -Action Inventory
Rédige une fiche de diagnostic
Choisis un service non critique. Documente état, mode de démarrage, compte, dépendances, événements liés, tâche éventuelle, preuve fonctionnelle et commande de rollback.
✓Lot 1 terminé
Tu sais maintenant identifier une machine Windows, préparer son installation, administrer les identités locales, publier un partage et corréler services, événements et tâches. La suite introduit Windows Server Manager, les rôles et les services réseau.