这是我正在使用的代码:
const string username = "domain\\user";
const string password = "password";
var credentials = new PSCredential(username, password.ToSecureString());
var connInfo = new WSManConnectionInfo(new Uri("https://server.domain.com/powershell"), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credentials)
{AuthenticationMechanism = AuthenticationMechanism.Negotiate};
var rS = RunspaceFactory.CreateRunspace(connInfo);
rS.Open();
这是例外:
连接到远程服务器server.domain.com失败,并显示以下错误消息:WinRM客户端无法处理请求。服务器不支持客户端请求的身份验证机制,或者在服务配置中禁用未加密的流量。验证服务配置中的未加密流量设置,或指定服务器支持的一种身份验证机制。要使用Kerberos,请将计算机名称指定为远程目标。还要验证客户端计算机和目标计算机是否已加入域。要使用Basic,请将计算机名称指定为远程目标,指定基本身份验证并提供用户名和密码。服务器报告的可能的身份验证机制:有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。
所以这是我的困惑。
我还可以检查什么来摆脱异常?
答案 0 :(得分:1)
我无法对此进行测试,但在查看MSDN Blog处的另一个示例后,无论您选择哪种凭据,似乎都需要更新connInfo
行以添加服务器名称使用。
var connInfo = new WSManConnectionInfo(new Uri("https://server.domain.com/powershell", ADD_SERVER_NAME_HERE), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credentials) { AuthenticationMechanism = AuthenticationMechanism.Negotiate };