从PowerShell使用WinRM连接到远程服务器失败

z9smfwbn  于 11个月前  发布在  Shell
关注(0)|答案(3)|浏览(180)

我试图从我的计算机上运行powershell代码到我的计算机上的vm,但我一直得到这个错误:
连接到远程服务器失败,并显示以下错误消息:WinRM客户端无法处理该请求。如果身份验证方案与IRM不同,或者客户端计算机未加入域,则必须使用HTTPS传输,或者必须将目标计算机添加到TrustedServer配置设置中。使用winrm.cmd配置TrustedServer。请注意,TrustedServer列表中的计算机可能不会您可以通过运行以下命令来获取有关此功能的详细信息: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();

字符串
我错过了什么?

5fjcxozz

5fjcxozz1#

如果客户端和远程机器不在同一个域上,你有两个选择之一:

  • 使用HTTPS作为传输协议
  • 将远程计算机添加到客户端上的受信任主机列表中

为了configure 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"}

2o7dmzc5

2o7dmzc52#

在一个新客户端上设置这个,我不得不:
1.以管理员身份运行PowerShell
1.通过运行此命令并对提示符回答yes来启用WinRM:

winrm quickconfig

字符串
1.将主机添加到我的受信任主机(其中1.2.3.4是主机的IP地址):

Set-Item wsman:localhost\client\trustedhosts -Value 1.2.3.4 -Concatenate

v09wglhw

v09wglhw3#

你在两台机器上都启用winrm了吗?尝试在每台机器上运行winrm quickconfig以确保启用了远程连接。

相关问题