I am trying to run powershell code from my computer to vm on my computer, but i keep getting this error:
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.
my 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();
What am I missing?
Type the following cmdlet and then hit Enter: "Restart-Service WinRM". It's time to test the connection, From the MID Server execute the following cmdlet into PowerShell and then hit Enter: "Test-WsMan <Target IP>" and This simple command tests whether the WinRM service is running on the remote Host.
If the client and the remote machine aren't on the same domain, you have one of two options:
In order to configure WinRM to use HTTPS, open up a PowerShell console as administrator on both machines and run:
winrm quickconfig -transport:https
and open port 5986 on the firewall:
netsh firewall add portopening TCP 5986 "WinRM over HTTPS"
Alternatively, you can add the remote machine as trusted host on the client by running:
winrm set winrm/config/client @{TrustedHosts="10.0.5.35"}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With