Description de l'erreur
This error occurs when you attempt to establish a remote Windows PowerShell or WinRM (Windows Remote Management) session using a specific certificate thumbprint for authentication, but your command or configuration fails to explicitly instruct the WinRM client to actually transmit that client certificate.
Par défaut, WinRM nécessite un drapeau programmatique spécifique appelé WSManFlagUseClientCertificate (ou son paramètre équivalent dans les cmdlets PowerShell) pour être actif chaque fois qu'une empreinte digitale de certificat est fournie. Sans ce drapeau, le client WinRM détecte une contradiction: vous l'avez dit qui Vous ne m'avez pas donné de certificat. autorisation pour utiliser l'authentification du certificat client.
Réparations étape par étape
Méthode 1: Ajouter le paramètre -CertificateFingerprint dans PowerShell
Si vous utilisez le New-PSSession ou... Enter-PSSession cmdlets, vous devez vous assurer que vous utilisez la configuration de paramètre correcte qui force le drapeau du certificat client à s'activer.
- Open PowerShell en tant qu'administrateur.
- Modify votre commande de connexion pour inclure les deux
-CertificateThumbprintEt le-UseSSLles paramètres. - Run la commande utilisant cette structure exacte:
$thumbprint = "YOUR_CERTIFICATE_THUMBPRINT_HERE" New-PSSession -ComputerName "TARGET_COMPUTER_NAME" -CertificateThumbprint $thumbprint -UseSSLRemarque: préciser
-CertificateThumbprintdéclenche nativement les drapeaux de certificat client WSMan requis sous le capot dans les versions modernes de PowerShell.
Méthode 2: Configurer les options de session wsman exclusivement
Si vous écrivez un scénario en utilisant New-WSManSessionOption, vous devez définir explicitement le mécanisme d'authentification afin que le signal soit transmis au sous-système WinRM.
- Open votre script ou console PowerShell.
- Create un objet d'option de session spécifiant l'authentification du certificat client:
$sessionOptions = New-WSManSessionOption -ClientCertificate - Pass Cette option objets dans votre commande de connexion en utilisant le
-SessionOptionparamètre:New-PSSession -ComputerName "TARGET_COMPUTER_NAME" -CertificateThumbprint "YOUR_CERTIFICATE_THUMBPRINT_HERE" -SessionOption $sessionOptions -UseSSL
Méthode 3: Mappage du certificat au client WinRM (politique de l'ordinateur local)
Si l'erreur persiste, il est possible que le client WinRM local ne soit pas configuré pour autoriser ou cartographier correctement les certificats clients.
- Click dans le menu Démarrer, tapez
cmd, cliquez avec le bouton droit. Command Prompt, et sélectionnez Run as administrator. - Enable l'authentification du certificat client dans la configuration WinRM locale en exécutant:
winrm set winrm/config/client/auth @{Certificate="true"} - Verify le changement de configuration par exécution:
winrm get winrm/config/client/auth - Ensure Ça, c' est ça.
Certificate = trueapparaît dans la liste de sortie.
Méthode 4: Vérifier l'emplacement des certificats racine et client de confiance
WinRM ne réussira pas à passer le drapeau de certificat si le certificat n'est pas situé dans le stockage personnel correct ou si le système d'exploitation ne lui fait pas confiance.
- Press
Windows Key + R, typecertlm.msc, et appuyez Enter pour ouvrir le gestionnaire de certificats de machine locale. - Navigate Je vous en prie.
Personal- >Certificateset assurez-vous que votre certificat client est présent ici et contient une clé privée. - Navigate Je vous en prie.
Trusted Root Certification Authorities- >Certificateset assurez-vous que le certificat racine qui a signé votre certificat client est répertorié ici. - Restart le service WinRM pour appliquer les modifications du système en exécutant cette commande dans votre Invite de commande Administrateur:
net stop winrm && net start winrm
Il y a peut-être des erreurs.. Learn Microsoft