Connexion au serveur distant a échoué à l'aide de WinRM à partir de PowerShell
Je suis en train de lancer powershell code à partir de mon ordinateur de vm sur mon ordinateur, mais je reçois ce message d'erreur:
Connexion au serveur distant a échoué avec le message d'erreur suivant :
Le client WinRM ne peut pas traiter la demande. Si l'authentification
le schéma est différent de Kerberos, ou si l'ordinateur client n'est pas
joint à un domaine, puis HTTPS transport doit être utilisé ou le
la machine de destination doivent être ajoutés à la configuration TrustedHosts
le réglage. Utilisation winrm.cmd pour configurer TrustedHosts. Notez que les ordinateurs
dans le TrustedHosts liste peut ne pas être authentifié. Vous pouvez obtenir plus d'
des informations à ce sujet en exécutant la commande suivante: winrm aider
config. Pour plus d'informations, voir la about_Remote_Troubleshooting
Rubrique d'aide.
mon code:
string runasUsername = @"\aaa";
string runasPassword = "aaa";
SecureString ssRunasPassword = new SecureString();
foreach (char x in runasPassword)
ssRunasPassword.AppendChar(x);
PSCredential credentials = new PSCredential(runasUsername, ssRunasPassword);
var connInfo = new WSManConnectionInfo(new Uri("http://10.0.5.35/PowerShell"),
"http://schemas.microsoft.com/powershell/Microsoft.Exchange",credentials);
connInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
var runspace = RunspaceFactory.CreateRunspace(connInfo);
var domainName = "domainName.COM";
var password = "ActiveDirectoryPassword1234";
var ssPassword = new SecureString();
foreach (char c in password)
ssPassword.AppendChar(c);
var command = new Command("New-Mailbox");
command.Parameters.Add("FirstName", firstName);
command.Parameters.Add("LastName", lastName);
command.Parameters.Add("Password", ssPassword);
command.Parameters.Add("ResetPasswordOnNextLogon", false);
command.Parameters.Add("OrganizationalUnit", "NeumontStudents");
runspace.Open(); <--//error here
var pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(command);
var results = pipeline.Invoke();
runspace.Dispose();
Ce qui me manque?
OriginalL'auteur woolford | 2013-04-15
Vous devez vous connecter pour publier un commentaire.
Si le client et la machine distante ne sont pas sur le même domaine, vous avez deux options:
Pour configuration de WinRM d'utiliser le protocole HTTPS, ouvrez une console PowerShell en tant qu'administrateur sur les deux machines et de l'exécution:
et ouvrir le port 5986 sur le pare-feu:
Alternativement, vous pouvez ajouter de la machine distante comme hôte de confiance sur le client en cours d'exécution:
sont le client et le serveur sur le même domaine?
Enrico Capitole, non monsieur
OK, j'ai mis à jour ma réponse.
OK, le winrm commande ne fonctionne que si vous supprimez les guillemets simples. (Il n'a toujours pas résoudre le problème pour moi).
OriginalL'auteur Enrico Campidoglio
avez-vous activé winrm sur les deux machines?
essayez d'exécuter
winrm quickconfig
sur chaque machine pour assurer la connectivité à distance est activé.Essayez d'utiliser CredSSP d'authentification. Regardez les étapes de ma réponse ici: stackoverflow.com/questions/15336336/...
CredSSP est utilisé pour permettre à la machine distante pour transmettre les informations d'identification du client lors de la connexion à d'autres services (par exemple, un deuxième-hop). Le problème dans ce cas est que le client et le serveur ne sont pas sur le même domaine.
Je le comprends, mais j'ai pensé que cela permettrait de résoudre la croix d'authentification de domaine depuis la norme d'authentification ne fonctionne pas.
OriginalL'auteur Musaab Al-Okaidi