Windows WinRM 错误:WSManSubscribe API 限制
描述
This error occurs because Windows Remote Management (WinRM) strictly enforces security policies for push-based event subscriptions. The WSManSubscribe API需要调用过程在内置下运行. Network Service (NT AUTHORITY\Network Service) 如果后台服务,监控工具或脚本试图使用标准用户,本地系统或本地管理员帐户初始化推送订阅,Windows会阻止请求并触发此错误.
逐步修复问题
根据导致错误的原因 (自定义脚本,第三方服务或计划任务),请使用以下方法之一来解决问题.
方法1:更改服务登录帐户
如果错误是由 Windows 服务 (如监控代理或数据收集器) 引起的:
- 按下
Windows Key + R打开运行对话框. - 它们的类型
services.msc然后按下. Enter. - 找到生成 WinRM 错误的服务.
- 右键单击服务并选择 Properties.
- 导航到 Log On 这里是我的房间.
- 选择一个 This account 收音机按.
- 它们的类型
NT AUTHORITY\Network Service在文本框中,将密码完全空白. - 点击 Apply 然后点击 OK.
- 再次右键单击服务并选择 Restart.
方法 2: 设置计划任务作为网络服务运行
如果错误来自自动脚本或通过任务调度器运行的可执行文件:
- 按下
Windows Key + R, 类型taskschd.msc,然后按下 Enter. - 在任务调度器库中找到运行脚本或软件的特定任务.
- 右键单击任务并选择 Properties.
- 在 General 标签,看看下面的 安全选项 部分并点击 Change User or Group....
- 在对象名字框中,输入
Network Service然后点击 Check Names. - 点击 OK 为了确认变化.
- 确保这一点. Run with highest privileges 如果任务需要更高的权限,则会被检查.
- 点击 OK 并重新启动或运行任务来验证修复.
方法3:从推送订阅转换到抽取订阅
如果您正在使用WinRM开发一个自定义的PowerShell脚本或应用程序,并且无法在网络服务帐户下运行它,则必须更改架构方法:
- 找到定义 WinRM 事件订阅的配置文件或源代码.
- 修改订阅交付机制从 Push 为了 Pull.
- 抽取订阅不使用限制的.
WSManSubscribe通过标准的管理员帐户执行.
ERROR_WSMAN_URI_NON_DMTF_CLASS | ERROR_WSMAN_URI_WRONG_DMTF_VERSION | ERROR_WSMAN_EVENTING_NONDOMAINJOINED_PUBLISHER | ERROR_WSMAN_EVENTING_NONDOMAINJOINED_COLLECTOR | ERROR_WSMAN_CONFIG_READONLY_PROPERTY
可能有一些错误.. Learn Microsoft