2013-04-15 16 views
12

próbuję uruchomić kod powershell z mojego komputera do VM na moim komputerze, ale wciąż otrzymuję ten błąd:Łączenie ze zdalnym serwerem nie powiodło się przy użyciu WinRM z PowerShell

Connecting to remote server failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.

mój kod:

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(); 

Czego mi brakuje?

+0

Czy próbowałeś sprawdzić rzeczy wymienione w komunikacie o błędzie? –

Odpowiedz

20

Jeśli klient i zdalne urządzenie nie są w tej samej domenie, masz jedną z dwóch opcji:

  • wykorzystanie HTTPS jako protokołu transportowego
  • dodać zdalną maszynę do listy zaufanych hostów na kliencie

w celu configure WinRM do korzystania z protokołu HTTPS, otwórz konsolę PowerShell jako administrator na obu maszynach i uruchom:

winrm quickconfig -transport:https 

i otwarty port 5986 na zaporze:

netsh firewall add portopening TCP 5986 "WinRM over HTTPS" 

Alternatywnie, można dodać zdalną maszynę jako zaufanego hosta na kliencie uruchamiając:

winrm set winrm/config/client '@{TrustedHosts="10.0.5.35"}' 
+0

Tak, jest, otrzymuję to: "WinRM już jest skonfigurowany do odbierania żądań na tym komputerze WinRM już jest skonfigurowany do zdalnego zarządzania na tym komputerze." – woolford

+0

@woolford są klientem i serwerem w tej samej domenie? –

+0

Enrico Campidoglio no sir – woolford

1

czy włączyłeś winrm na obu komputerach? spróbuj uruchomić winrm quickconfig na każdym komputerze, aby zapewnić zdalną łączność jest włączona.

+0

Tak, jest, otrzymuję to: "WinRM już jest skonfigurowany do odbierania żądań na tym komputerze WinRM już jest skonfigurowany do zdalnego zarządzania na tym komputerze." – woolford

+0

Spróbuj użyć uwierzytelniania CredSSP. Spójrz na kroki w mojej odpowiedzi tutaj: http://stackoverflow.com/questions/15336336/running-batch-file-on-remote-computers-using-powershell-2-0/15336790#15336790 –

+0

CredSSP służy do zezwalaj zdalnemu komputerowi na przekazywanie poświadczeń klienta podczas łączenia się z innymi usługami (np. [drugi skok] (http://blogs.technet.com/b/heyscriptingguy/archive/2012/11/14/enable-powershell- quot-second-hop-quot-function-with-credssp.aspx)). Problem w tym przypadku polega na tym, że klient i serwer nie znajdują się w tej samej domenie. –

Powiązane problemy