如何为Winrm启用协商身份验证


10

我已通过执行以下命令来禁用服务器上Winrm服务的协商身份验证:

winrm put winrm/config/service/Auth @{Negotiate="false"}

现在,我可以使用winrm执行任何操作。我得到错误:

    Message = The WinRM client cannot process the request. The WinRM client trie
d to use Negotiate authentication mechanism, but the destination computer (local
host:47001) returned an 'access denied' error. Change the configuration to allow
 Negotiate authentication mechanism to be used or specify one of the authenticat
ion mechanisms supported by the server. To use Kerberos, specify the local compu
ter name as the remote destination. Also verify that the client computer and the
 destination computer are joined to a domain. To use Basic, specify the local co
mputer name as the remote destination, specify Basic authentication and provide
user name and password. Possible authentication mechanisms reported by server:

我理解该错误,但是问题是,我在网上找到启用协商身份验证的唯一方法是执行以下命令:

winrm put winrm/config/service/Auth @{Negotiate="true"}

当然哪个会出现上述错误。还有另一种启用协商身份验证的方法吗?

Answers:


14

使用组策略:

计算机>策略>管理模板> Windows组件> Windows远程管理> WinRM服务:
禁止协商身份验证:禁用。


5
对于未来的读者:打开此菜单中的运行(WIN + 'R') gpedit.msc,然后选择Computer Configuration- > Administrative Templates...
Ivaylo Strandjev

如果它是“未配置”,请不要让它欺骗您;它实际上并没有达到您期望的默认值。尝试注册表修复失败后,这最终成为了我的答案。
durette

5

编辑注册表项HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WSMAN \ Client。

将auth_kerberos和auth_negotiate设置为1。

重新启动服务。


2

如在此答案中建议的,但服务而非客户端:

  1. 编辑注册表项HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Service

  2. auth_kerberos和设置auth_negotiate1

  3. 重新启动Windows远程管理(WS-Management)服务。


1

在我们的服务器2012 / Exchange 2010计算机上,尝试使用AVG备份软件时出现此错误。

我发现同时删除两者maxenvelopesizetrusted_hosts在此键下完成了窍门

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Client]
"maxEnvelopeSize"=dword:000007d0
"trusted_hosts"="*"

1

我有一台服务器在工作,而另一台则没有。我找不到问题。终于我明白了。

在发送服务器上:设置本地策略“计算机配置\管理模板\系统\凭据委派\允许委派新凭据”。在此处,在“将服务器添加到列表”中设置WSMAN *(还选中“连接操作系统默认值”复选框)

在接收服务器上(使用以下命令创建一个.reg文件:):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Client] 
"auth_credssp"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Service]
"auth_credssp"=dword:00000001

为我工作


1

请注意,如果计算机(服务器)是域的成员,或者其本身是域控制器(在我的情况下是Windows Server 2019),则可以从域组策略中应用组策略。
因此,我建议(在这些情况下)使用以下命令并检查“禁止协商身份验证”策略的获胜值。

C:\Temp\gpresult /h rep.htm

它可以从“默认域控制器策略”中应用!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.