Description
SEC_E_MUTUAL_AUTH_FAILED (code hexadécimal 0x8009031A, décimal -2146893030) est un code d'erreur Windows de niveau erreur appartenant à la famille Active Directory et Kerberos. Microsoft remonte ce code via l'API Win32, le runtime CLR, le noyau, le journal d'événements, PowerShell, les outils en ligne de commande (sfc, dism, gpupdate, sc) et les applications Windows telles qu'Outlook, Teams, Office ou System Center.
Mutual authentication failed. The server password is out of date at the domain controller.
Cette page documente ce qui déclenche 0x8009031A, les scénarios les plus courants où il apparaît, les causes racines probables et un workflow de diagnostic pas-à-pas applicable sur les postes concernés. Elle s'adresse aux administrateurs système, techniciens MSP, ingénieurs helpdesk et à toute personne diagnostiquant le comportement de Windows en environnement managé.
Explication détaillée
Il s'agit d'un code de niveau erreur. Windows l'utilise pour signaler une opération en échec qui a empêché l'appelant de terminer son travail. La cause sous-jacente peut aller d'un problème de droits ou de quota à un composant système corrompu, une dépendance manquante ou un service injoignable.
Il fait partie de l'espace d'erreurs Active Directory / Kerberos / SSPI. Ces codes apparaissent typiquement dans le journal Sécurité, côté client via Outlook, RDP, partages de fichiers ou SQL Server, et côté contrôleur de domaine dans Netlogon.log et les traces Kerberos.
Le code peut être recherché par programmation en PowerShell avec [ComponentModel.Win32Exception]::new(-2146893030).Message (pour les codes Win32 / NTSTATUS qui se mappent proprement), ou avec net helpmsg <decimal> pour la plage décimale historique. Pour les codes de type HRESULT, décodez la facility et le code via err.exe du SDK ou la commande !error de WinDbg.
Causes courantes
- Décalage horaire entre client et DC supérieur à 5 minutes (limite stricte Kerberos).
- SPN (Service Principal Name) manquant ou dupliqué sur le compte de service cible.
- Mot de passe de compte ordinateur désynchronisé avec AD — rejoignez le domaine ou exécutez
nltest /sc_reset. - Résolution DNS du DC en échec — vérifiez les SRV
_kerberos._tcp.<domaine>. - Autorité racine ou intermédiaire de confiance manquante côté client (scénarios carte à puce / PKINIT).
Étapes de diagnostic
- Vérifiez la synchronisation horaire avec
w32tm /query /status— client et DC doivent être à moins de 5 minutes d'écart. - Vérifiez les SPN :
setspn -L <compte>sur le compte de service, etsetspn -Xsur la forêt pour détecter les doublons. - Réinitialisez le canal sécurisé depuis un membre concerné :
nltest /sc_verify:<domaine>, puisnltest /sc_reset:<domaine>si nécessaire. - Validez le DNS : depuis le client,
nslookup -type=SRV _kerberos._tcp.<domaine>doit retourner des DC accessibles. - Capturez une trace réseau avec
netsh traceou Wireshark filtrée surkerberospour voir le code d'erreur AS/TGS exact.
Décoder en PowerShell
# Decode 0x8009031A (-2146893030) in PowerShell
[ComponentModel.Win32Exception]::new(-2146893030).Message
# Or via WinDbg / err.exe (Windows SDK)
# err 0x8009031A
# Or net helpmsg (legacy decimal range only)
# net helpmsg <decimal>Questions fréquentes
Que signifie le code d'erreur Windows 0x8009031A ?
SEC_E_MUTUAL_AUTH_FAILED (décimal -2146893030). Mutual authentification failed. The server mot de passe is out of date at the contrôleur de domaine.Comment décoder 0x8009031A en PowerShell ?
[ComponentModel.Win32Exception]::new(-2146893030).Message dans n'importe quelle session PowerShell. Pour les codes de type HRESULT, utilisez err.exe du SDK Windows ou la commande !error de WinDbg.Où Windows journalise-t-il typiquement cette erreur ?
%WinDir%\WindowsUpdate.log ; AD/Kerberos → journal Sécurité sur le DC ; BSOD → minidump dans C:\Windows\Minidump ; MSI → %TEMP%\msi*.log ; WMI → Microsoft-Windows-WMI-Activity). Croisez toujours l'horodatage et le nom du module avec les journaux Application et Système.Ce code est-il récupérable ?
Dois-je ouvrir un ticket support Microsoft pour cela ?
Get-WinEvent avant d'ouvrir le ticket.
