ANAVEM
Languageen
Windows Performance Monitor dashboard displaying system metrics and event logs in an IT operations center
Event ID 1023ErrorPerflibWindows

ID d'événement Windows 1023 – Perflib : Corruption du registre des compteurs de performance

L'ID d'événement 1023 indique une corruption du registre des compteurs de performance dans Windows. Cette erreur affecte les outils de surveillance du système et la collecte des données de performance, nécessitant une réparation du registre ou une reconstruction des compteurs.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 mars 20269 min de lecture 0
Event ID 1023Perflib 5 méthodes 9 min
Référence événement

Signification de cet événement

L'ID d'événement Windows 1023 représente une défaillance critique dans le sous-système de la bibliothèque de performance, indiquant spécifiquement une corruption au sein de la structure du registre des compteurs de performance. Le service Perflib maintient une base de données complète de compteurs de performance que les applications et les outils système utilisent pour surveiller les métriques de performance de Windows en temps réel.

Lorsque cet événement se produit, Windows a détecté des incohérences ou une corruption dans les entrées du registre des compteurs de performance, rendant certains ou tous les compteurs de performance inutilisables. La corruption peut se manifester de plusieurs façons : définitions de compteurs manquantes, index de compteurs invalides, noms de compteurs corrompus ou relations rompues entre les catégories de compteurs et leurs données de performance associées.

L'impact va au-delà des simples échecs de surveillance. Les applications qui dépendent des compteurs de performance pour des décisions opérationnelles peuvent mal fonctionner ou planter. Les outils de surveillance du système comme le Moniteur de performance (PerfMon), les onglets de performance du Gestionnaire des tâches et les solutions de surveillance tierces perdent l'accès à des métriques critiques. De plus, les services de journalisation de performance automatisés peuvent échouer, créant des lacunes dans les données de performance historiques.

La corruption affecte généralement l'infrastructure du Windows Performance Toolkit, qui comprend la bibliothèque Performance Data Helper (PDH) et les fournisseurs de performance Windows Management Instrumentation (WMI). La récupération nécessite de reconstruire la structure du registre des compteurs de performance, ce qui implique d'arrêter les services dépendants, de supprimer les entrées corrompues et de permettre à Windows de régénérer la base de données des compteurs à partir des paramètres par défaut du système et des manifestes des applications installées.

S'applique à

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

Causes possibles

  • Désinstallation incorrecte d'application laissant des entrées de compteurs de performance orphelines
  • Corruption du registre due à des arrêts système inattendus ou des pannes de courant
  • Logiciels malveillants ou de sécurité interférant avec les clés de registre des compteurs de performance
  • Modifications manuelles du registre affectant les entrées Perflib
  • Mises à jour Windows échouées corrompant les définitions des compteurs de performance
  • Logiciels tiers enregistrant ou désenregistrant incorrectement les compteurs de performance
  • Erreurs de disque affectant les fichiers de la ruche du registre contenant les données des compteurs de performance
  • Corruption des fichiers système impactant les composants de la bibliothèque de performance
Méthodes de résolution

Étapes de dépannage

01

Vérifier les détails de l'événement et l'évaluation de l'impact

Commencez par examiner les détails spécifiques de l'erreur et évaluer l'étendue de la corruption des compteurs de performance.

  1. Ouvrez Observateur d'événementsJournaux WindowsApplication
  2. Filtrez pour l'ID d'événement 1023 de la source Perflib:
    Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1023; ProviderName='Perflib'} -MaxEvents 20 | Format-Table TimeCreated, LevelDisplayName, Message -Wrap
  3. Vérifiez la fonctionnalité du Moniteur de performance en exécutant perfmon.exe et en essayant d'ajouter des compteurs
  4. Testez l'accès de base aux compteurs de performance:
    Get-Counter "\Processor(_Total)\% Processor Time" -MaxSamples 1
  5. Vérifiez l'état du fournisseur de performance WMI:
    Get-WmiObject -Class Win32_PerfRawData_PerfOS_Processor | Select-Object Name, PercentProcessorTime
Astuce pro : Si des compteurs de base comme le temps du processeur échouent, la corruption est étendue et nécessite une reconstruction immédiate.
02

Reconstruire les compteurs de performance en utilisant Lodctr

Utilisez l'utilitaire intégré Lodctr pour reconstruire les entrées de registre des compteurs de performance corrompues.

  1. Ouvrez l'invite de commandes en tant qu'administrateur
  2. Arrêtez les services dépendants qui pourraient interférer avec la reconstruction des compteurs :
    Stop-Service -Name "WinRM", "WMI", "PerfHost" -Force -ErrorAction SilentlyContinue
  3. Reconstruisez tous les compteurs de performance à partir des manifestes système :
    lodctr /R
  4. Si la reconstruction échoue, forcez la recréation du registre de performance :
    cd /d %windir%\system32
    lodctr /R
    cd /d %windir%\sysWOW64
    lodctr /R
  5. Redémarrez le système et vérifiez la fonctionnalité des compteurs :
    Restart-Computer -Force
  6. Après le redémarrage, testez l'accès aux compteurs de performance :
    Get-Counter "\Memory\Available MBytes", "\Processor(_Total)\% Processor Time" -MaxSamples 3
Avertissement : Le commutateur /R reconstruit tous les compteurs, ce qui peut prendre plusieurs minutes et désactiver temporairement la surveillance des performances.
03

Nettoyage manuel du registre et restauration du compteur

Effectuez un nettoyage manuel du registre lorsque la reconstruction automatisée ne parvient pas à résoudre une corruption persistante.

  1. Créez une sauvegarde du registre avant de faire des modifications :
    reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib" C:\Backup\Perflib_backup.reg
  2. Arrêtez tous les services liés aux performances :
    $services = @('WinRM', 'WMI', 'PerfHost', 'PLA', 'WdiServiceHost')
    $services | ForEach-Object { Stop-Service -Name $_ -Force -ErrorAction SilentlyContinue }
  3. Accédez à la clé de registre de la bibliothèque de performances et examinez la corruption :
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
  4. Vérifiez les valeurs Counter et Help invalides ou manquantes :
    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009" -Name "Counter", "Help" | Format-List
  5. Si les valeurs Counter ou Help sont corrompues, restaurez-les à partir d'un système sain ou utilisez le vérificateur de fichiers système :
    sfc /scannow
    Dism /Online /Cleanup-Image /RestoreHealth
  6. Reconstruisez les compteurs après le nettoyage du registre :
    lodctr /R
Astuce pro : Comparez les valeurs du registre avec un système fonctionnel pour identifier des modèles de corruption spécifiques.
04

Reconstruction avancée du référentiel WMI

Reconstruisez le référentiel WMI lorsque la corruption des compteurs de performance s'étend aux fournisseurs de performance WMI.

  1. Arrêtez WMI et les services dépendants :
    Stop-Service -Name "Winmgmt" -Force
    Stop-Service -Name "WMI*" -Force -ErrorAction SilentlyContinue
  2. Réinitialisez le référentiel WMI à l'état par défaut :
    winmgmt /resetrepository
  3. Si la réinitialisation du référentiel échoue, reconstruisez-le manuellement :
    cd /d %windir%\system32\wbem
    for /f %s in ('dir /b *.dll') do regsvr32 /s %s
    for /f %s in ('dir /b *.exe') do call :FixSrv %s
    wmiprvse /regserver
    winmgmt /regserver
  4. Recompilez les fichiers MOF pour les fournisseurs de performance :
    mofcomp cimwin32.mof
    mofcomp rsop.mof
    mofcomp wmipcima.mof
  5. Redémarrez le service WMI et vérifiez la fonctionnalité du fournisseur de performance :
    Start-Service -Name "Winmgmt"
    Get-WmiObject -Class Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory
  6. Reconstruisez les compteurs de performance après la restauration de WMI :
    lodctr /R
Avertissement : La reconstruction du référentiel WMI affecte toutes les applications dépendantes de WMI et peut nécessiter des reconfigurations spécifiques aux applications.
05

Restauration des fichiers système et réparation des composants

Effectuer une restauration complète des fichiers système lorsque la corruption affecte les composants de performance principaux de Windows.

  1. Exécuter un vérificateur de fichiers système complet avec réparation du magasin de composants :
    Dism /Online /Cleanup-Image /CheckHealth
    Dism /Online /Cleanup-Image /ScanHealth
    Dism /Online /Cleanup-Image /RestoreHealth
  2. Exécuter le vérificateur de fichiers système pour réparer les fichiers de bibliothèque de performance corrompus :
    sfc /scannow
  3. Vérifier la corruption spécifique des fichiers de bibliothèque de performance :
    $perfFiles = @('perflib.dll', 'perfdisk.dll', 'perfnet.dll', 'perfos.dll', 'perfproc.dll')
    $perfFiles | ForEach-Object {
        $file = Get-Item "$env:SystemRoot\System32\$_" -ErrorAction SilentlyContinue
        if ($file) { Write-Host "$_ - Version: $($file.VersionInfo.FileVersion)" }
        else { Write-Host "$_ - MISSING" -ForegroundColor Red }
    }
  4. Réinitialiser les composants de la boîte à outils de performance Windows :
    regsvr32 /s pdh.dll
    regsvr32 /s perfmon.exe
    regsvr32 /s wmiprvse.exe
  5. Reconstruire l'infrastructure de performance à partir de zéro :
    lodctr /R
    winmgmt /resyncperf
    wmiadap /f
  6. Vérifier la restauration complète avec un test de compteur complet :
    $testCounters = @(
        "\Processor(_Total)\% Processor Time",
        "\Memory\Available MBytes",
        "\PhysicalDisk(_Total)\Disk Reads/sec",
        "\Network Interface(*)\Bytes Total/sec"
    )
    $testCounters | ForEach-Object {
        try {
            $result = Get-Counter $_ -MaxSamples 1 -ErrorAction Stop
            Write-Host "✓ $_ - Working" -ForegroundColor Green
        } catch {
            Write-Host "✗ $_ - Failed: $($_.Exception.Message)" -ForegroundColor Red
        }
    }
Conseil pro : Documentez quels compteurs échouent avant et après chaque étape de réparation pour suivre la progression de la restauration.

Aperçu

L'ID d'événement 1023 de la source Perflib signale une corruption critique du registre des compteurs de performance dans les systèmes Windows. Cet événement se déclenche lorsque le service de la bibliothèque de performance (Perflib) rencontre des entrées de registre de compteurs de performance endommagées ou incohérentes, empêchant une surveillance correcte du système et la collecte de données. L'erreur se manifeste généralement lors du démarrage du système, lorsque les outils de surveillance de la performance tentent d'accéder aux compteurs, ou lors des processus automatisés de collecte de données de performance.

Les compteurs de performance sont des composants essentiels de Windows qui fournissent des métriques système en temps réel pour l'utilisation du CPU, la consommation de mémoire, l'activité du disque et les statistiques réseau. Lorsque ces compteurs sont corrompus, les administrateurs système perdent la visibilité sur des métriques de performance critiques, et les applications de surveillance peuvent ne pas fonctionner correctement. La corruption provient souvent de désinstallations incorrectes d'applications, de modifications du registre ou de plantages du système lors des mises à jour des compteurs.

Cet événement nécessite une attention immédiate car il affecte les capacités de surveillance du système et peut impacter les efforts de dépannage de la performance. La corruption implique généralement la ruche de registre HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib, où Windows stocke les définitions et configurations des compteurs de performance.

Questions Fréquentes

Que signifie exactement l'ID d'événement Windows 1023 concernant mon système ?+
L'ID d'événement 1023 de Perflib indique que Windows a détecté une corruption dans la base de données du registre des compteurs de performance. Cela signifie que la capacité du système à collecter et à rapporter des métriques de performance est compromise. La corruption affecte les entrées du registre qui définissent le fonctionnement des compteurs de performance, y compris leurs noms, descriptions et méthodes de collecte de données. Lorsque cela se produit, des outils de surveillance comme le Moniteur de performance, les onglets de performance du Gestionnaire des tâches et les logiciels de surveillance tiers peuvent afficher des erreurs ou des données manquantes. L'événement signale que le service de la bibliothèque de performance ne peut pas initialiser correctement ou accéder aux définitions des compteurs stockées dans le registre.
Puis-je continuer à utiliser mon ordinateur normalement avec des erreurs d'ID d'événement 1023 ?+
Oui, vous pouvez continuer les opérations informatiques normales, mais avec des limitations significatives dans les capacités de surveillance des performances. Les fonctions principales de Windows comme les opérations de fichiers, le réseau et les applications fonctionneront normalement. Cependant, vous perdrez l'accès aux données de performance en temps réel, ce qui affecte le dépannage et la surveillance du système. Le Moniteur de performance affichera des erreurs, les onglets de performance du Gestionnaire des tâches peuvent afficher des informations incomplètes, et les scripts de surveillance automatisés échoueront. Les administrateurs système devraient donner la priorité à la résolution de ce problème car la surveillance des performances est cruciale pour identifier les goulots d'étranglement, la planification de la capacité et le dépannage des problèmes système. Plus vous retardez les réparations, plus vous perdrez de données historiques de performance.
Combien de temps faut-il pour reconstruire les compteurs de performance en utilisant lodctr /R ?+
La commande lodctr /R prend généralement 2 à 10 minutes pour s'exécuter, selon les performances de votre système et le nombre d'applications installées avec des compteurs de performance personnalisés. Sur les systèmes modernes avec SSD, le processus se termine généralement en 3 à 5 minutes. Cependant, sur les systèmes plus anciens avec des disques durs traditionnels ou des systèmes avec de nombreuses applications tierces qui enregistrent des compteurs de performance, cela peut prendre jusqu'à 15 minutes. Pendant ce processus, la surveillance des performances sera indisponible et certains services peuvent temporairement cesser de répondre. La commande reconstruit entièrement le registre des compteurs de performance à partir de zéro, en lisant les définitions des compteurs à partir des fichiers système et des manifestes des applications installées. Prévoyez un bref redémarrage du système après la reconstruction pour garantir que tous les services reconnaissent correctement la nouvelle structure des compteurs.
La reconstruction des compteurs de performance affectera-t-elle mes applications installées ?+
La reconstruction des compteurs de performance n'affecte généralement pas la fonctionnalité des applications, mais elle peut impacter les applications qui dépendent fortement de la surveillance des performances. La plupart des applications standard continueront à fonctionner normalement car elles ne dépendent pas des compteurs de performance pour leurs opérations principales. Cependant, les applications de surveillance, les outils de gestion de système et certains logiciels d'entreprise peuvent nécessiter une reconfiguration après la reconstruction des compteurs. Les compteurs de performance personnalisés créés par des applications tierces seront restaurés à partir de leurs manifestes d'installation, mais toutes les configurations ou seuils personnalisés que vous avez définis dans les outils de surveillance devront être reconfigurés. Les systèmes de gestion de bases de données, les plateformes de virtualisation et les solutions de surveillance d'entreprise peuvent nécessiter des redémarrages de service pour reconnaître les compteurs reconstruits. Testez toujours les applications de surveillance critiques après avoir effectué des reconstructions de compteurs.
Que dois-je faire si lodctr /R ne parvient pas à corriger l'ID d'événement 1023 ?+
Si lodctr /R échoue, la corruption est probablement plus profonde que les simples définitions de compteurs de performance. Tout d'abord, vérifiez la sortie de la commande pour des messages d'erreur spécifiques indiquant quels compteurs n'ont pas pu être reconstruits. Exécutez l'outil Vérificateur de fichiers système (sfc /scannow) pour réparer les fichiers système corrompus qui peuvent empêcher l'enregistrement correct des compteurs. Si SFC trouve des corruptions, suivez avec les commandes DISM pour réparer le magasin de composants Windows. Ensuite, essayez de reconstruire le référentiel WMI en utilisant 'winmgmt /resetrepository' car WMI et les compteurs de performance sont interconnectés. Pour des problèmes persistants, examinez manuellement les clés de registre Perflib pour détecter une corruption évidente et envisagez de restaurer à partir d'une sauvegarde du registre. Dans les cas extrêmes, vous devrez peut-être effectuer une mise à niveau sur place de Windows ou une restauration du système à un point avant que la corruption ne se produise.
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.

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...