ANAVEM
Languageen
Windows Services management console displaying service status on a professional monitoring dashboard
Event ID 31WarningService Control ManagerWindows

ID d'événement Windows 31 – Système : Délai d'attente du gestionnaire de contrôle des services

L'ID d'événement 31 indique qu'un service n'a pas répondu à une demande de démarrage ou de contrôle dans le délai imparti, généralement 30 secondes, ce qui amène le Gestionnaire de contrôle des services à enregistrer cet avertissement.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 mars 202612 min de lecture 0
Event ID 31Service Control Manager 5 méthodes 12 min
Référence événement

Signification de cet événement

L'ID d'événement 31 représente un problème fondamental de gestion des services Windows où le Gestionnaire de contrôle des services ne peut pas terminer une opération de service dans le délai imparti. Le SCM maintient des contrôles de délai d'attente stricts pour éviter les blocages du système et garantir une gestion réactive des services. Lorsqu'un service dépasse ces délais, Windows enregistre cet événement pour maintenir une trace d'audit des problèmes de performance des services.

Le mécanisme de délai d'attente sert de mesure de protection contre les services qui deviennent non réactifs en raison de la concurrence des ressources, des blocages, des problèmes de dépendance ou des erreurs internes. Les systèmes Windows modernes en 2026 ont amélioré les mécanismes de détection et de récupération des délais d'attente, mais l'ID d'événement 31 reste un indicateur critique de problèmes de santé des services nécessitant une attention administrative.

Cet événement peut entraîner des problèmes plus graves s'il n'est pas résolu. Les services qui dépassent constamment le délai d'attente peuvent finalement échouer à démarrer complètement, ce qui peut entraîner des échecs d'application, des problèmes de connectivité réseau ou une instabilité du système. Les données de l'événement fournissent des informations de diagnostic précieuses, y compris le nom spécifique du service, le type d'opération et la durée du délai d'attente, permettant des approches de dépannage ciblées.

Dans les environnements d'entreprise, les modèles d'ID d'événement 31 révèlent souvent des problèmes systémiques tels que des ressources système insuffisantes, des problèmes de performance de stockage ou des problèmes de connectivité réseau affectant les dépendances de service. Surveiller ces événements de manière proactive aide à prévenir les échecs de service et à maintenir des performances système optimales.

S'applique à

Windows 10Windows 11Windows Server 2019/2022/2025
Analyse

Causes possibles

  • Ressources système insuffisantes (CPU, mémoire ou disque I/O) causant des retards de démarrage du service
  • Dépendances de service non disponibles ou répondant lentement lors de l'initialisation
  • Logiciel antivirus interférant avec les processus de démarrage du service
  • Fichiers exécutables de service ou données de configuration corrompus
  • Problèmes de connectivité réseau affectant les services nécessitant des ressources réseau lors du démarrage
  • Problèmes de performance de stockage causant un accès lent aux fichiers lors de l'initialisation du service
  • Deadlocks de service ou boucles infinies empêchant une réponse correcte aux requêtes SCM
  • Corruption du registre affectant les paramètres de configuration du service
  • Services tiers avec une mauvaise gestion des erreurs ou des ressources
  • Surcharge du système pendant les périodes de démarrage de pointe avec plusieurs services en compétition pour les ressources
Méthodes de résolution

Étapes de dépannage

01

Identifier et analyser l'événement de temporisation

Commencez par examiner les détails spécifiques de l'ID d'événement 31 pour identifier le service problématique et les circonstances de dépassement de délai.

1. Ouvrez Observateur d'événementsJournaux WindowsSystème

2. Filtrez pour l'ID d'événement 31 en utilisant l'option de filtre ou la fonctionnalité de recherche

3. Examinez les entrées récentes de l'ID d'événement 31 et notez les noms des services, les types d'opérations et les horodatages

4. Utilisez PowerShell pour interroger les événements de dépassement de délai de manière programmatique :

Get-WinEvent -FilterHashtable @{LogName='System'; Id=31} -MaxEvents 20 | Select-Object TimeCreated, Id, LevelDisplayName, Message | Format-Table -Wrap

5. Extrayez les noms des services des messages d'événement :

Get-WinEvent -FilterHashtable @{LogName='System'; Id=31} -MaxEvents 10 | ForEach-Object { $_.Message -match 'service (.+?) did not respond' | Out-Null; $Matches[1] } | Sort-Object -Unique

6. Documentez la fréquence et les modèles de synchronisation de ces événements pour identifier les tendances

Astuce pro : Les messages de l'ID d'événement 31 contiennent le nom exact du service et l'opération qui a expiré, ce qui facilite l'identification.
02

Vérifier l'état du service et les dépendances

Enquêter sur l'état actuel et la configuration des services générant des événements de dépassement de délai.

1. Vérifiez l'état actuel du service problématique :

Get-Service -Name "ServiceName" | Select-Object Name, Status, StartType, ServiceType

2. Examinez les dépendances de service qui pourraient causer des retards de démarrage :

Get-Service -Name "ServiceName" -DependentServices
Get-Service -Name "ServiceName" -RequiredServices

3. Ouvrez Services.msc et localisez le service problématique

4. Cliquez avec le bouton droit sur le service → Propriétés → onglet Dépendances pour voir la chaîne de dépendance

5. Vérifiez si les services dépendants fonctionnent correctement :

$ServiceName = "YourServiceName"
$RequiredServices = Get-Service -Name $ServiceName -RequiredServices
$RequiredServices | ForEach-Object { Get-Service $_.Name | Select-Object Name, Status }

6. Examinez le type de démarrage du service et envisagez de passer de Automatique à Automatique (Démarrage différé) pour les services non critiques

Avertissement : Modifier les types de démarrage des services peut affecter la fonctionnalité du système. Testez les modifications dans un environnement non-production d'abord.
03

Surveiller les ressources système lors du démarrage du service

Analyser l'utilisation des ressources système pour identifier les goulets d'étranglement causant des délais d'attente de service.

1. Utiliser le Moniteur de performance pour suivre l'utilisation des ressources lors du démarrage du système :

2. Ouvrir perfmon.exe et créer un nouvel ensemble de collecteurs de données

3. Ajouter des compteurs pour :

  • Processeur : % Temps processeur
  • Mémoire : Mo disponibles
  • Disque physique : % Temps disque
  • Disque physique : Longueur moyenne de la file d'attente du disque

4. Surveiller l'utilisation des ressources avec PowerShell pendant les opérations de service :

Get-Counter "\Processor(_Total)\% Processor Time", "\Memory\Available MBytes", "\PhysicalDisk(_Total)\% Disk Time" -SampleInterval 2 -MaxSamples 30

5. Vérifier la pression sur la mémoire qui pourrait affecter le démarrage du service :

Get-WmiObject -Class Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory, @{Name="MemoryUsagePercent";Expression={[math]::Round((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory) / $_.TotalVisibleMemorySize) * 100, 2)}}

6. Identifier les processus consommant des ressources excessives lors du démarrage :

Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, CPU, WorkingSet

7. Envisager d'augmenter les ressources système ou d'optimiser la séquence de démarrage si des contraintes de ressources sont identifiées

04

Modifier les valeurs de délai d'attente du service

Ajustez les valeurs de registre de délai d'attente des services pour accommoder les services qui nécessitent légitimement des temps de démarrage plus longs.

1. Créez une sauvegarde du registre avant de faire des modifications :

reg export HKLM\SYSTEM\CurrentControlSet\Control C:\Backup\ServiceControl_backup.reg

2. Accédez à l'emplacement du registre de délai d'attente des services :

HKLM\SYSTEM\CurrentControlSet\Control

3. Modifiez la valeur ServicesPipeTimeout (par défaut 30000 millisecondes) :

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control" -Name "ServicesPipeTimeout" -Value 60000 -Type DWord

4. Pour des services spécifiques, accédez à leurs clés de registre individuelles :

HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]

5. Ajoutez ou modifiez les valeurs de délai d'attente spécifiques au service si elles sont prises en charge par le service

6. Redémarrez le système pour appliquer les modifications du registre :

Restart-Computer -Force

7. Surveillez le Visualiseur d'événements après le redémarrage pour vérifier que les événements de délai d'attente sont résolus

Avertissement : Augmenter les valeurs de délai d'attente peut masquer des problèmes de performance sous-jacents. Traitez les causes profondes avant de modifier les délais d'attente.
Astuce pro : La valeur ServicesPipeTimeout affecte tous les services à l'échelle du système. Considérez l'impact sur la réactivité globale du système.
05

Dépannage et récupération avancés des services

Mettre en œuvre des stratégies de récupération de service complètes et des techniques de diagnostic avancées.

1. Activer la journalisation détaillée des services pour les services problématiques :

wevtutil sl Microsoft-Windows-Services/Diagnostic /e:true

2. Configurer les options de récupération de service via Services.msc :

Ouvrir Services.msc → Clic droit sur le service → Propriétés → Onglet Récupération

Définir les actions de récupération : Redémarrer le service, Redémarrer le service, Ne rien faire

3. Utiliser Process Monitor (ProcMon) pour tracer les activités de démarrage du service :

Télécharger ProcMon depuis Microsoft Sysinternals et filtrer par le nom du processus de service

4. Analyser les dépendances exécutables du service :

$ServicePath = (Get-WmiObject Win32_Service -Filter "Name='ServiceName'").PathName
Get-Command $ServicePath.Split('"')[1] | Select-Object FileVersionInfo

5. Vérifier les fichiers de service corrompus et réparer si nécessaire :

sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

6. Créer un script de surveillance de service personnalisé :

$ServiceName = "YourServiceName"
while ($true) {
    $Service = Get-Service -Name $ServiceName
    if ($Service.Status -ne "Running") {
        Write-Host "$(Get-Date): $ServiceName is $($Service.Status)"
        Start-Service -Name $ServiceName
    }
    Start-Sleep -Seconds 30
}

7. Mettre en œuvre le transfert d'événements Windows pour centraliser la surveillance des événements de timeout sur plusieurs systèmes

Astuce pro : Utilisez Windows Performance Toolkit (WPT) pour une analyse avancée des performances de démarrage afin d'identifier les goulots d'étranglement du démarrage des services.

Aperçu

L'ID d'événement 31 se déclenche lorsque le Gestionnaire de contrôle des services Windows (SCM) rencontre un délai d'attente en tentant de démarrer, arrêter ou contrôler un service. Cet avertissement apparaît dans le journal Système lorsqu'un service ne répond pas dans le délai d'attente par défaut de 30 secondes. Le SCM génère cet événement pour indiquer qu'une opération de service a dépassé le temps de réponse attendu, ce qui peut signaler des problèmes de performance sous-jacents, des contraintes de ressources ou des dysfonctionnements de service.

Ce événement se produit couramment lors du démarrage du système lorsque plusieurs services s'initialisent simultanément, lors des séquences d'arrêt, ou lors du contrôle manuel des services via la console Services ou les commandes PowerShell. Bien que non critique, l'ID d'événement 31 peut indiquer des goulets d'étranglement potentiels de performance du système ou des services problématiques qui peuvent affecter la stabilité globale du système et les temps de démarrage.

L'événement inclut généralement le nom du service, l'opération qui a expiré (démarrer, arrêter, suspendre, continuer), et la durée du délai d'attente. Comprendre cet événement aide les administrateurs à identifier les services qui peuvent nécessiter des ajustements de configuration, des changements d'allocation de ressources, ou une enquête plus approfondie sur leur santé opérationnelle.

Questions Fréquentes

Que signifie l'ID d'événement 31 et pourquoi se produit-il ?+
L'ID d'événement 31 indique qu'un service Windows n'a pas répondu à une demande de démarrage, d'arrêt ou de contrôle dans le délai imparti (généralement 30 secondes). Cela se produit lorsque le Gestionnaire de contrôle des services ne peut pas terminer une opération de service en raison de contraintes de ressources, de dépendances de service, de problèmes de performance ou de problèmes internes du service. Cet avertissement aide les administrateurs à identifier les services qui peuvent rencontrer des difficultés opérationnelles ou des goulots d'étranglement système affectant la réactivité du service.
Comment puis-je déterminer quel service provoque l'ID d'événement 31 ?+
Le message d'ID d'événement 31 contient le nom spécifique du service qui a expiré. Vous pouvez l'identifier en examinant les détails de l'événement dans le Visualiseur d'événements sous Journaux Windows → Système, ou utiliser PowerShell : Get-WinEvent -FilterHashtable @{LogName='System'; Id=31} -MaxEvents 10 | Select-Object Message. Le message indique généralement 'Le service [nom du service] n'a pas répondu à la demande de démarrage ou de contrôle dans un délai raisonnable.' Vous pouvez ensuite enquêter sur l'état, les dépendances et la configuration de ce service spécifique.
L'ID d'événement 31 est-il dangereux et causera-t-il des problèmes système ?+
L'ID d'événement 31 est un événement de niveau avertissement, non critique, mais il peut indiquer des problèmes sous-jacents qui peuvent entraîner des problèmes plus graves s'ils ne sont pas résolus. Bien que le système continue de fonctionner, des événements de délai d'attente persistants peuvent entraîner des échecs de service, des dysfonctionnements d'application ou une dégradation des performances du système. Les services qui expirent constamment peuvent éventuellement échouer à démarrer, affectant potentiellement les applications ou fonctions système dépendantes. Il est important d'enquêter et de résoudre les causes profondes pour maintenir une stabilité optimale du système.
Puis-je augmenter en toute sécurité les valeurs de délai d'attente du service pour résoudre l'ID d'événement 31 ?+
Oui, vous pouvez augmenter les valeurs de délai d'attente, mais cela doit être fait avec prudence et uniquement après avoir identifié des raisons légitimes pour des temps de démarrage plus longs. Modifiez la valeur de registre ServicesPipeTimeout à HKLM\SYSTEM\CurrentControlSet\Control (par défaut 30000ms). Cependant, augmenter les délais d'attente peut masquer des problèmes de performance sous-jacents plutôt que de les résoudre. Il est préférable de d'abord traiter les causes profondes comme les contraintes de ressources, les problèmes de dépendance ou les problèmes de configuration de service. Sauvegardez toujours le registre avant de faire des modifications et testez dans un environnement non-production.
Comment puis-je empêcher l'ID d'événement 31 de se reproduire à l'avenir ?+
Prévenez l'ID d'événement 31 en traitant les causes profondes : assurez des ressources système adéquates (CPU, mémoire, I/O disque), optimisez les séquences de démarrage des services en utilisant le démarrage automatique (démarrage différé) pour les services non critiques, résolvez les problèmes de dépendance des services, maintenez les services et pilotes à jour, surveillez régulièrement les performances du système, et mettez en place des exclusions antivirus appropriées pour les exécutables de service. Utilisez le Moniteur de performance pour identifier les goulets d'étranglement des ressources, configurez les options de récupération des services, et envisagez de répartir les démarrages de services dans le temps pour réduire la contention des ressources lors du démarrage du système.
Documentation

Références (2)

Emanuel DE ALMEIDA
Écrit par

Emanuel DE ALMEIDA

Senior IT Journalist & Cloud Architect

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Événements Windows associés

Windows Services console showing running services on a monitoring dashboard
Event 2000
Service Control Manager
Windows EventInformation

ID d'événement Windows 2000 – Gestionnaire de contrôle des services : Service démarré avec succès

L'ID d'événement 2000 indique qu'un service Windows a démarré avec succès. Cet événement informatif aide les administrateurs à suivre les activités de démarrage des services et à résoudre les dépendances de service lors du démarrage du système ou des opérations manuelles de service.

18 mars9 min
Windows Services management console displaying service status and configuration on a monitoring dashboard
Event 63
Service Control Manager
Windows EventError

ID d'événement Windows 63 – Gestionnaire de contrôle des services : Délai d'attente de démarrage du service en attente

L'ID d'événement 63 indique qu'un service Windows n'a pas pu démarrer dans le délai de timeout configuré. Cet événement critique aide à identifier les problèmes de démarrage de service et les problèmes potentiels de performance du système.

18 mars12 min
Windows security operations center showing Event Viewer with service installation monitoring and PowerShell security analysis
Event 7045
Service Control Manager
Windows EventInformation

ID d'événement Windows 7045 – Gestionnaire de contrôle des services : Nouvelle installation de service

L'ID d'événement 7045 se déclenche lorsqu'un nouveau service Windows est installé sur le système. Cet événement informatif enregistre les détails de création du service, y compris le nom, le chemin et le type de démarrage pour la surveillance de la sécurité.

18 mars12 min
Windows Services management console and Event Viewer displaying service monitoring information on server room monitors
Event 7023
Service Control Manager
Windows EventError

ID d'événement Windows 7023 – Gestionnaire de contrôle des services : Service terminé avec erreur

L'ID d'événement 7023 indique qu'un service Windows s'est terminé de manière inattendue avec un code d'erreur. Cet événement critique nécessite une enquête immédiate pour identifier les services défaillants et prévenir l'instabilité du système.

18 mars12 min

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...