Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article fournit une résolution à l’erreur 0x80090322 lors de la connexion de PowerShell à un serveur distant via Windows Remote Management (WinRM).
S’applique à : versions prises en charge de Windows et Windows Server
Numéro de base de connaissances d’origine : 4549715
Symptômes
Supposons que vous essayez de démarrer une session PowerShell avec un serveur distant. Lorsque vous exécutez la Enter-PSSession -Computername <FQDN>
commande, vous recevez l’erreur suivante :
Entrée-PSSession : La connexion au nom de domaine> complet du serveur <distant a échoué avec le message d’erreur suivant : WinRM ne peut pas traiter la requête. L’erreur suivante avec le code d’erreur 0x80090322 s’est produite lors de l’utilisation de l’authentification Kerberos : une erreur de sécurité inconnue s’est produite.
Cause
Par défaut, PowerShell utilise un nom de principal de service HTTP (SPN) au format HTTP/<FQDN>
pour se connecter au serveur distant. Ce problème se produit lorsque le SPN est déjà inscrit auprès d’un autre compte de service dans la forêt ou inscrit manuellement dans un service web s’exécutant sur l’ordinateur.
Résolution
Tout d’abord, nous devons identifier le SPN. Exécutez la commande setspn -q http/<FQDN>
pour identifier si ce SPN est inscrit dans un compte de service.
Utilisez ensuite l’une de ces options pour résoudre ce problème :
Option 1
Vérifiez si vous avez toujours besoin de l’inscription spN sur un compte de service. Supprimez l’inscription spN si ce n’est pas nécessaire.
Option 2 :
Configurez un SPN dédié pour WinRM en spécifiant le numéro de port. Exécutez ces commandes pour inscrire le SPN :
Setspn -s HTTP/servername:5985 <servername>
Setspn -s HTTP/FQDN:5985 <servername>
Par exemple :
Setspn -s HTTP/Mem1:5985 Mem1
Setspn -s HTTP/Mem1.contoso.com:5985 Mem1
Utilisez la commande PowerShell suivante pour spécifier un port pour la Enter-PSSession
commande :
Enter-PSSession -ComputerName <servername or FQDN> -SessionOption (New-PSSessionOption -IncludePortInSPN)
Par exemple :
Enter-PSSession -Computername mem1.contoso.com -SessionOption (New-PSSessionOption -IncludePortInSPN)
Option 3
Configurez le client WinRM pour utiliser un SPN WSMAN (Web Services-Management) au lieu d’un SPN HTTP en créant la valeur de Registre suivante :
Clé :HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Client
Nom de la valeur : spn_prefix
Type de valeur : REG_SZ (chaîne)
Données de valeur : WSMAN
Note
Cette opération doit être effectuée sur l’ordinateur client.
La requête Kerberos ressemble à l’exemple suivant après avoir apporté la modification du Registre. Dans une requête TGS (Ticket Granting Server), le SPN est WSMAN/mem1.contoso.com
au lieu de HTTP/mem1.contoso.com
.
Client.contoso.com DC1.contoso.com KerberosV5 KerberosV5 :TGS Request Realm : CONTOSO.COM Sname : WSMAN/mem1.contoso.com
Vous pouvez également utiliser la reg add
commande :
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Client /v spn_prefix /t REG_SZ /d "WSMAN" /f
Ensuite, ajoutez les SPN suivants au compte d’ordinateur :
Setspn -s WSMAN/<servername> <servername>
Setspn -s WSMAN/<servername>.<domainname> <servername>
Par exemple :
Setspn -s WSMAN/mem1 mem1
Setspn -s WSMAN/mem1.contoso.com mem1