woo*_*ord 13 c# powershell winrm
我试图从我的计算机上运行PowerShell代码到我的计算机上的vm,但我不断收到此错误:
连接到远程服务器失败,并显示以下错误消息:WinRM客户端无法处理该请求.如果身份验证方案与Kerberos不同,或者客户端计算机未加入域,则必须使用HTTPS传输,或者必须将目标计算机添加到TrustedHosts配置设置.使用winrm.cmd配置TrustedHosts.请注意,TrustedHosts列表中的计算机可能未经过身份验证.您可以通过运行以下命令获取有关该信息的更多信息:winrm help config.有关详细信息,请参阅about_Remote_Troubleshooting帮助主题.
我的代码:
  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();
我错过了什么?
Enr*_*lio 23
如果客户端和远程计算机不在同一个域中,则您有以下两种选择之一:
要将WinRM配置为使用HTTPS,请在两台计算机上以管理员身份打开PowerShell控制台并运行:
winrm quickconfig -transport:https
并在防火墙上打开端口5986:
netsh firewall add portopening TCP 5986 "WinRM over HTTPS"
或者,您可以通过运行以下命令将远程计算机添加为客户端上的可信主机:
winrm set winrm/config/client @{TrustedHosts="10.0.5.35"}