Question WinRM ne peut pas traiter la demande - échoue uniquement sur un domaine spécifique


Certains de nos serveurs (W2K8 R2) ont été déplacés sur le cloud la semaine dernière, une fois que mon script powerswhell a commencé à échouer (il fonctionnait correctement avant), l'exception est lancée sur la ligne où la connexion essaie d'être établie,

$ExSession = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri     "http://$g_strExchangeServer/PowerShell" `
-Credential $Credentials –Authentication Kerberos

Avec le message suivant,

[subd.staging.com] Connecting to remote server failed with the following error message : 
**WinRM cannot process the request**. The following error occured while using Kerberos authentication: There are currently no logon servers available to service the logon request.  
Possible causes are:
-The user name or password specified are invalid.
-Kerberos is used when no authentication method and no user name are specified.
-Kerberos accepts domain user names, but not local user names.
-The Service Principal Name (SPN) for the remote computer name and port does not exist.
-The client and remote computers are in different domains and there is no trust between the two domains.
After checking for the above issues, try the following:
-Check the Event Viewer for events related to authentication.
-Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
Note that computers in the TrustedHosts list might not be authenticated.
-For more information about WinRM configuration, run the following command: winrm help onfig. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed

Cela se produit uniquement si j'essaie de cibler notre domaine de test, si je pointe le script vers notre domaine de production, cela fonctionne.

La même erreur est affichée sur tous les serveurs déjà déplacés vers le cloud.

Notez que tous les serveurs qui n'ont pas encore migré vers le cloud peuvent exécuter le script sur les deux domaines sans aucun problème.

J'ai essayé ce qui suit, mais pas de chance.

//Add the destination computer to the WinRM TrustedHosts configuration setting. 
c:\>WinRM set winrm/config/client @{TrustedHosts="stagingserver"} 


//Confirm that WinRM is properly configured.  
c:\>Winrm quickconfig  

//Make sure that the remote server allows commands from any machine. 
PS c:\>Set-item wsman:localhost\client\trustedhosts -value * 

Utiliser Powershell v2 et WinRM v2

Tous les commentaires sont les bienvenus.


12
2017-08-17 01:08


origine


Réponses:


Exécutez ces commandes sur l'ordinateur client, puis essayez d'atteindre un hôte distant:

Nous devons d'abord vérifier TrustedHosts sur la machine cliente:

PS C:\> WinRM get winrm/config/client
Client
    NetworkDelayms = 5000
    URLPrefix = wsman
    AllowUnencrypted = false
    Auth
        Basic = true
        Digest = true
        Kerberos = true
        Negotiate = true
        Certificate = true
        CredSSP = false
    DefaultPorts
        HTTP = 5985
        HTTPS = 5986
    TrustedHosts

S'il est vide comme dans l'exemple, exécutez la commande ci-dessous sur le client machine:

PS C:> Élément de configuration wsman: localhost \ client \ trustedhosts - valeur *

Cela va écrire * dans le paramètre TrustedHosts qui permettra à la machine cliente de se connecter à n'importe quel hôte, ou vous pouvez configurer cette valeur avec ip et / ou nom d'hôte du serveur cible.

PS C:\> WinRM get winrm/config/client
Client
    NetworkDelayms = 5000
    URLPrefix = wsman
    AllowUnencrypted = false
    Auth
        Basic = true
        Digest = true
        Kerberos = true
        Negotiate = true
        Certificate = true
        CredSSP = false
    DefaultPorts
        HTTP = 5985
        HTTPS = 5986
    TrustedHosts = *

22
2017-07-31 15:43