好吧,我一直在尝试通过 HTTPS 设置 Windows 事件转发,在此过程中,我遇到了很多错误,我设法一一解决,但现在我被困在一个似乎无法修复的错误上。
另外,我想说的是,通过 HTTP,一切都正常。但是,如果我尝试使用 HTTPS 而不是 HTTP,源计算机将无法连接到收集器。
我一直遵循的指南(除了遵循其他来源的说明之外):
https://docs.microsoft.com/en-us/windows/desktop/wec/setting-up-a-source-initiated-subscription
看来我和这个用户遇到了同样的问题:
设置:
- Windows Server 2016 通过源启动订阅充当 Windows 事件收集器
- Windows 10 企业版,使用采用 HTTPS 的 Windows 事件转发订阅
- 两者都在同一个域中,比如说 domain.example.com
为了简单起见,我们将它们称为 WS2016 和 WIN10。没有异议吗?很好。
所以在WIN10上,设置了以下GPO:
计算机配置\管理模板\Windows 组件\事件转发\配置目标订阅管理器
这是我正在使用的值:
SERVER=HTTPS://WS2016.example.domain.com:5986/wsman/SubscriptionManager/WEC,Refresh=60,IssuerCA=$CA_THUMBPRINT
从技术上讲,我甚至不需要添加 IssuerCA 部分,因为两个系统都在同一个域上,但即使没有,我也会收到错误。
现在,一旦在源计算机(WIN10)上配置了订阅,它就会尝试连接到 WEC(WS2016),但会失败,并且此错误会记录在事件查看器的 Eventlog-ForwardingPlugin\Operational 日志下。
The forwarder is having a problem communicating with subscription manager at address https://WS2016.example.domain.com:5986/wsman/SubscriptionManager/WEC. Error code is 5 and Error Message is
<f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="5" Machine="WIN10.example.domain.com"><f:Message>WinRM client cannot process the request. The destination computer (WS2016.example.domain.com:5986) returned an 'access denied'
error. Specify one of the authentication mechanisms supported by the server. If Kerberos mechanism is used, verify
that the client computer and the destination computer are joined to a domain. Possible authentication mechanisms
reported by server: Negotiate Kerberos </f:Message></f:WSManFault>.
如果我检查 Windows 远程管理\操作日志,我可以看到以下错误:
EventID 164: The destination computer (WS2016.example.domain.com) returned an 'access denied' error. Verify your credentials are correct.
EventID 142: WSMan operation Enumeration failed, error code 5
我基本上已经走投无路了。我试了很多办法,但都不管用。
编辑:
我尝试过的一些东西:
- 通过 PowerShell 使用 Test-WSMan 连接到 WS2016,使用 -UseSSL 和 -Authentication Default 参数,它可以工作。
- 在 WS2016 管理员组中的 WIN10 上添加当前用户(已打开会话的用户)
至于“检查”,太多了,无法记住并全部列出......
答案1
在典型的域环境中,您可能不需要设置 HTTPS 来传输事件因为它们是通过 Kerberos 加密的。
但是,如果服务器或客户端未加入域,您可以用 HTTPS 替换 Kerberos 来传输事件。您必须处理证书分发、续订等事宜...
例如,出于安全目的,可以将事件收集器设置为非域服务器(该服务器位于工作组中,因此即使域管理员也无法连接和删除日志。)
答案2
我指的是这个所以我首先确保我的 Winrm 配置设置正确参考:https://learn.microsoft.com/en-us/troubleshoot/windows-client/system-management-components/configure-winrm-for-https然后我检查了转发事件的 WEC 服务器,我的订阅下的服务器丢失了。添加了它,问题解决了