ANAVEM
Languageen
Windows Component Services DCOM configuration interface showing security permissions settings
Event ID 10016WarningMicrosoft-Windows-DistributedCOMWindows

ID d'événement Windows 10016 – Microsoft-Windows-DistributedCOM : Erreur de permission DCOM refusée

L'ID d'événement 10016 indique des problèmes de permission DCOM lorsque des applications tentent d'accéder à des composants COM sans autorisation appropriée. Cet événement de niveau avertissement est souvent bénin mais peut indiquer des problèmes de configuration de sécurité.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
17 mars 202612 min de lecture 1
Event ID 10016Microsoft-Windows-DistributedCOM 5 méthodes 12 min
Référence événement

Signification de cet événement

L'ID d'événement DCOM 10016 représente un mécanisme d'application de la frontière de sécurité au sein de l'architecture du modèle d'objet composant de Windows. Lorsque cet événement se déclenche, cela indique que le gestionnaire de contrôle des services DCOM (SCM) a bloqué une tentative d'activation d'une application serveur COM en raison de permissions insuffisantes configurées dans les paramètres de sécurité du composant.

Le message de l'événement contient des identifiants critiques, y compris le CLSID (Identifiant de Classe) du composant COM, l'APPID (Identifiant d'Application) utilisé pour la configuration de sécurité, le SID (Identifiant de Sécurité) de l'utilisateur demandeur, et le contexte du conteneur d'application si applicable. Ces détails permettent aux administrateurs de déterminer exactement quel composant a été accédé, par qui, et sous quel contexte de sécurité.

Les versions modernes de Windows génèrent ces événements plus fréquemment en raison de modèles de sécurité améliorés et de la conteneurisation des applications. Les applications de la plateforme universelle Windows (UWP), en particulier, déclenchent souvent des événements 10016 car elles fonctionnent dans des contextes de sécurité restreints et peuvent manquer de permissions pour accéder à certains composants COM au niveau du système. L'événement sert à la fois de piste d'audit de sécurité et d'outil de diagnostic pour résoudre les problèmes de compatibilité des applications.

Comprendre la distinction entre les événements 10016 bénins et problématiques est crucial pour les administrateurs système. De nombreuses applications Microsoft sont conçues avec des mécanismes de repli de permission, où les tentatives d'accès initiales sont censées échouer, déclenchant ces événements dans le cadre d'un fonctionnement normal plutôt que d'indiquer de réels problèmes système.

S'applique à

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

Causes possibles

  • Applications tentant d'accéder aux composants DCOM sans les autorisations d'activation locale appropriées
  • Services système s'exécutant sous des comptes restreints essayant de lancer des applications serveur COM
  • Applications UWP fonctionnant dans des conteneurs d'applications avec des droits d'accès COM limités
  • Logiciels tiers avec une configuration de sécurité DCOM insuffisante
  • Applications intégrées de Windows utilisant des mécanismes d'authentification de secours au démarrage
  • Paramètres de sécurité DCOM corrompus ou mal configurés dans le registre
  • Modifications de compte utilisateur affectant les autorisations DCOM précédemment accordées
  • Mises à jour d'applications qui modifient l'enregistrement des composants COM sans mettre à jour les paramètres de sécurité
Méthodes de résolution

Étapes de dépannage

01

Analyser les détails de l'événement et déterminer la gravité

Commencez par examiner le CLSID et l'APPID spécifiques mentionnés dans l'événement pour déterminer si une action est requise.

  1. Ouvrez Observateur d'événementsJournaux WindowsSystème
  2. Filtrez pour l'ID d'événement 10016 en utilisant PowerShell :
Get-WinEvent -FilterHashtable @{LogName='System'; Id=10016} -MaxEvents 20 | Format-Table TimeCreated, Id, LevelDisplayName, Message -Wrap
  1. Notez le CLSID et l'APPID à partir de la description de l'événement
  2. Vérifiez si le CLSID correspond à des composants Microsoft connus :
# CLSIDs Microsoft courants qui génèrent des événements 10016 bénins
$BenignCLSIDs = @(
    '{D63B10C5-BB46-4990-A94F-E40B9D520160}', # Recherche Windows
    '{260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E}', # Hôte d'expérience Shell
    '{C2F03A33-21F5-47FA-B4BB-156362A2F239}', # Santé de la sécurité Windows
    '{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}'  # Cortana
)

# Vérifiez si votre CLSID est dans la liste bénigne
$YourCLSID = '{PASTE-YOUR-CLSID-HERE}'
if ($BenignCLSIDs -contains $YourCLSID) {
    Write-Host "Ce CLSID est connu pour générer des événements 10016 bénins" -ForegroundColor Green
} else {
    Write-Host "Ce CLSID peut nécessiter une enquête" -ForegroundColor Yellow
}
Astuce pro : Si l'événement implique NT AUTHORITY\SYSTEM ou NT AUTHORITY\LOCAL SERVICE et des CLSIDs Microsoft connus, il est généralement sûr de l'ignorer.
02

Configurer les autorisations DCOM à l'aide des services de composants

Modifiez les paramètres de sécurité DCOM pour accorder les autorisations appropriées à l'utilisateur ou au service demandeur.

  1. Appuyez sur Win + R, tapez dcomcnfg.exe, et appuyez sur Entrée
  2. Accédez à Services de composantsOrdinateursMon ordinateurConfiguration DCOM
  3. Localisez l'application en utilisant l'APPID de l'événement (recherche par GUID)
  4. Cliquez avec le bouton droit sur l'application → Propriétés → onglet Sécurité
  5. Sous Autorisations de lancement et d'activation, cliquez sur Modifier
  6. Ajoutez l'utilisateur ou le compte de service mentionné dans l'événement :
# Pour trouver le nom d'utilisateur à partir du SID dans l'événement
$SID = 'S-1-5-18'  # Remplacez par le SID de votre événement
$User = (New-Object System.Security.Principal.SecurityIdentifier($SID)).Translate([System.Security.Principal.NTAccount])
Write-Host "SID $SID correspond à : $($User.Value)"
  1. Accordez les autorisations Lancement local et Activation locale
  2. Cliquez sur OK et redémarrez le service affecté ou redémarrez
Avertissement : Modifiez uniquement les autorisations DCOM pour les applications tierces. Modifier les autorisations des composants Microsoft peut entraîner une instabilité du système.
03

Supprimer les événements bénins par modification du registre

Pour les événements bénins confirmés provenant des composants Microsoft, vous pouvez supprimer la journalisation pour réduire le bruit du journal des événements.

  1. Identifiez le composant DCOM spécifique générant des événements bénins
  2. Créez une sauvegarde du registre avant de faire des modifications :
# Sauvegarde des paramètres du registre DCOM
reg export "HKLM\SOFTWARE\Classes\AppID" "C:\Temp\DCOM_AppID_Backup.reg" /y
reg export "HKLM\SOFTWARE\Microsoft\Ole" "C:\Temp\DCOM_Ole_Backup.reg" /y
  1. Accédez à la clé de registre de l'application DCOM :
# Trouver le chemin du registre de l'application DCOM
$APPID = '{YOUR-APPID-HERE}'  # Remplacez par l'APPID de l'événement
$RegPath = "HKLM:\SOFTWARE\Classes\AppID\$APPID"
if (Test-Path $RegPath) {
    Get-ItemProperty -Path $RegPath
} else {
    Write-Host "APPID non trouvé dans le registre" -ForegroundColor Red
}
  1. Pour les composants Microsoft uniquement, vous pouvez désactiver la journalisation DCOM en modifiant la valeur EnableDCOMHTTP
  2. Approche alternative - filtrer les événements au niveau du journal des événements :
# Créer une vue personnalisée du journal des événements pour exclure les événements bénins 10016
$FilterXML = @'

  
    
  

'@

Get-WinEvent -FilterXml $FilterXML -MaxEvents 10
Astuce pro : Au lieu de supprimer les événements, envisagez de créer une tâche planifiée pour nettoyer périodiquement les événements bénins 10016 du journal Système.
04

Enquêter sur les problèmes DCOM spécifiques à l'application

Pour les applications non-Microsoft générant des événements 10016, effectuez une enquête détaillée et une résolution.

  1. Identifiez l'application associée au CLSID :
# Interroger le registre pour les informations CLSID
$CLSID = '{YOUR-CLSID-HERE}'  # Remplacez par le CLSID de l'événement
$CLSIDPath = "HKLM:\SOFTWARE\Classes\CLSID\$CLSID"

if (Test-Path $CLSIDPath) {
    $CLSIDInfo = Get-ItemProperty -Path $CLSIDPath -ErrorAction SilentlyContinue
    Write-Host "Application : $($CLSIDInfo.'(default)')" -ForegroundColor Green
    
    # Vérifiez InprocServer32 ou LocalServer32
    $InprocPath = "$CLSIDPath\InprocServer32"
    $LocalPath = "$CLSIDPath\LocalServer32"
    
    if (Test-Path $InprocPath) {
        $ServerInfo = Get-ItemProperty -Path $InprocPath
        Write-Host "Chemin du serveur : $($ServerInfo.'(default)')" -ForegroundColor Cyan
    }
    
    if (Test-Path $LocalPath) {
        $ServerInfo = Get-ItemProperty -Path $LocalPath
        Write-Host "Serveur local : $($ServerInfo.'(default)')" -ForegroundColor Cyan
    }
} else {
    Write-Host "CLSID non trouvé dans le registre" -ForegroundColor Red
}
  1. Vérifiez si le service de l'application fonctionne correctement :
# Vérifiez les services associés
Get-Service | Where-Object {$_.DisplayName -like '*YourApp*' -or $_.ServiceName -like '*YourApp*'} | Format-Table Name, Status, StartType
  1. Vérifiez que l'utilisateur demandeur dispose des autorisations appropriées
  2. Vérifiez le journal des événements de l'application pour les erreurs associées :
Get-WinEvent -FilterHashtable @{LogName='Application'; Level=2,3} -MaxEvents 50 | Where-Object {$_.TimeCreated -gt (Get-Date).AddHours(-2)} | Format-Table TimeCreated, Id, LevelDisplayName, ProviderName, Message -Wrap
  1. Si l'application est critique, contactez le fournisseur pour obtenir des conseils sur la configuration DCOM
05

Dépannage avancé avec Process Monitor et journalisation DCOM

Utilisez des outils avancés pour tracer les tentatives d'activation DCOM et identifier les causes profondes.

  1. Activez la journalisation détaillée de DCOM dans le registre :
# Activer la journalisation des erreurs DCOM (à utiliser avec précaution)
$DCOMLogPath = "HKLM:\SOFTWARE\Microsoft\Ole"
Set-ItemProperty -Path $DCOMLogPath -Name "EnableDCOMHTTP" -Value 1 -Type DWord
Set-ItemProperty -Path $DCOMLogPath -Name "CallFailureLoggingLevel" -Value 1 -Type DWord

# Redémarrer le service DCOM pour appliquer les modifications
Restart-Service -Name "DcomLaunch" -Force
  1. Téléchargez et exécutez Process Monitor (ProcMon) de Microsoft Sysinternals
  2. Définissez des filtres pour capturer l'activité liée à DCOM :
# Script PowerShell pour analyser les événements DCOM récents avec chronométrage
$Events = Get-WinEvent -FilterHashtable @{LogName='System'; Id=10016} -MaxEvents 100

$EventAnalysis = $Events | Group-Object {$_.TimeCreated.ToString('yyyy-MM-dd HH:mm')} | ForEach-Object {
    [PSCustomObject]@{
        TimeWindow = $_.Name
        EventCount = $_.Count
        UniqueUsers = ($_.Group | ForEach-Object {($_.Message -split 'SID \(')[1] -split '\)')[0]} | Sort-Object -Unique).Count
        UniqueCLSIDs = ($_.Group | ForEach-Object {($_.Message -split 'CLSID ')[1] -split ' and')[0]} | Sort-Object -Unique).Count
    }
}

$EventAnalysis | Format-Table -AutoSize
  1. Utilisez Windows Performance Toolkit (WPT) pour une traçabilité COM détaillée si disponible
  2. Vérifiez les motifs dans le chronométrage des événements qui correspondent aux lancements d'applications ou aux événements système
  3. Documentez les résultats et créez des alertes de surveillance pour les motifs non bénins :
# Créer une tâche planifiée pour surveiller les motifs inhabituels 10016
$TaskAction = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-WindowStyle Hidden -Command 'Get-WinEvent -FilterHashtable @{LogName=\"System\"; Id=10016} -MaxEvents 50 | Where-Object {$_.TimeCreated -gt (Get-Date).AddMinutes(-15)} | Export-Csv C:\Logs\DCOM_10016_$(Get-Date -Format yyyyMMdd_HHmm).csv -NoTypeInformation'"

$TaskTrigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 15)

Register-ScheduledTask -TaskName "DCOM_10016_Monitor" -Action $TaskAction -Trigger $TaskTrigger -Description "Monitor DCOM 10016 events for analysis"
Avertissement : La journalisation détaillée de DCOM peut générer un volume de journaux important. Désactivez après le dépannage en définissant CallFailureLoggingLevel à 0.

Aperçu

L'ID d'événement 10016 de Microsoft-Windows-DistributedCOM se déclenche lorsque des applications ou des services tentent d'accéder à des composants Distributed COM (DCOM) sans les autorisations nécessaires. Cet événement apparaît dans le journal Système et indique généralement qu'un processus a essayé d'activer une application serveur COM mais a été refusé en raison d'autorisations insuffisantes d'Activation Locale, de Lancement Local ou d'Activation à Distance.

L'événement se produit couramment lors du démarrage du système, des lancements d'applications ou lorsque des services en arrière-plan tentent d'interagir avec des composants COM. Bien qu'apparaissant souvent comme une erreur, de nombreux événements 10016 sont en réalité un comportement attendu où les applications utilisent un mécanisme de secours - elles tentent d'abord l'accès avec un ensemble d'identifiants, et si refusé, réessayent avec différents paramètres.

Ces événements sont particulièrement courants avec les applications intégrées de Windows comme Cortana, Windows Search, Shell Experience Host, et divers services système. Les valeurs CLSID et APPID dans la description de l'événement identifient le composant COM spécifique en cours d'accès et aident à déterminer si le refus d'autorisation nécessite une attention ou fait partie du fonctionnement normal du système.

Questions Fréquentes

Que signifie l'ID d'événement 10016 et devrais-je m'en inquiéter ?+
L'ID d'événement 10016 indique qu'une application ou un service a tenté d'accéder à un composant DCOM mais a été refusé en raison de permissions insuffisantes. Que vous deviez vous en préoccuper dépend du CLSID spécifique et du contexte. Les événements impliquant des composants Microsoft comme Windows Search, Cortana ou Shell Experience Host sont généralement bénins et font partie du fonctionnement normal du système. Cependant, si les événements impliquent des applications tierces ou se produisent fréquemment avec une instabilité du système, une enquête est justifiée. Vérifiez le CLSID par rapport aux composants Microsoft connus et surveillez les schémas qui correspondent aux échecs d'application.
Comment puis-je identifier quelle application provoque l'ID d'événement 10016 ?+
Pour identifier l'application, examinez les valeurs CLSID et APPID dans le message d'événement. Utilisez PowerShell pour interroger le registre : Get-ItemProperty -Path "HKLM:\SOFTWARE\Classes\CLSID\{YOUR-CLSID}" pour trouver le nom de l'application et le chemin du serveur. Vous pouvez également utiliser la console des Services de composants (dcomcnfg.exe) pour parcourir les applications DCOM par leur APPID. Recoupez l'horodatage de l'événement avec les lancements d'applications ou les activités système pour établir une corrélation. Process Monitor peut également aider à tracer quels processus tentent l'activation DCOM.
Est-il sûr de modifier les autorisations DCOM pour corriger l'ID d'événement 10016 ?+
La modification des autorisations DCOM doit être effectuée avec prudence et uniquement pour des applications tierces légitimes. Ne modifiez jamais les autorisations pour les composants système Microsoft, car cela peut entraîner une instabilité du système ou des vulnérabilités de sécurité. Avant d'apporter des modifications, créez une sauvegarde du registre et documentez les autorisations d'origine. Accordez uniquement les autorisations minimales nécessaires (généralement Lancement local et Activation locale) à l'utilisateur ou au compte de service spécifique mentionné dans l'événement. Testez minutieusement après les modifications et soyez prêt à revenir en arrière si des problèmes surviennent. Pour les composants Microsoft générant des événements bénins, envisagez de supprimer les événements plutôt que de modifier les autorisations.
Pourquoi vois-je plusieurs entrées d'ID d'événement 10016 pour la même application ?+
Plusieurs événements 10016 pour la même application indiquent souvent un mécanisme de réessai où l'application tente l'activation DCOM avec des identifiants ou des paramètres différents après des échecs initiaux. Cela est courant avec les applications Microsoft qui utilisent des méthodes d'authentification de secours. La fréquence dépend de la fréquence à laquelle l'application tente d'accéder au composant COM. Si les événements se produisent à chaque démarrage du système ou lancement de l'application, c'est probablement un comportement normal. Cependant, si les événements se produisent en continu ou en succession rapide, cela peut indiquer un problème de configuration ou un dysfonctionnement de l'application nécessitant une enquête.
Comment puis-je empêcher l'ID d'événement 10016 de remplir mon journal des événements système ?+
Pour les événements bénins confirmés provenant des composants Microsoft, vous pouvez créer des vues de journal d'événements personnalisées pour les filtrer, ou utiliser des scripts PowerShell pour nettoyer périodiquement les anciens événements 10016. Évitez de désactiver complètement la journalisation DCOM car elle fournit des informations précieuses pour l'audit de sécurité. Au lieu de cela, créez des tâches planifiées pour archiver ou supprimer les anciens événements bénins, augmentez la taille du journal Système, ou configurez des politiques de rotation des journaux. Pour les problèmes persistants avec des applications tierces, travaillez avec le fournisseur pour configurer correctement les autorisations DCOM plutôt que de supprimer les événements. Vous pouvez également créer des alertes de surveillance qui distinguent les modèles 10016 bénins et potentiellement problématiques.
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...