通过Python远程获取Win32_Service遇COM错误0x80041003的权限问题
解决WMI远程查询Win32_Service时的0x80041003权限错误
你遇到的0x80041003错误是WMI的访问拒绝问题,虽然已经做了基础配置,但还有几个容易遗漏的权限点需要补充:
细化WMI命名空间权限
打开wmimgmt.msc,右键「WMI控制」→ 属性 → 安全标签,展开Root→CIMV2节点(Win32_Service属于这个命名空间),点击「安全」→「编辑」添加你的远程监控账户,确保勾选启用账户和远程启用的「允许」权限。补全DCOM启动/激活权限
打开dcomcnfg,依次进入「组件服务」→「计算机」→「我的电脑」→ 右键属性 → COM安全标签:- 在「启动和激活权限」里点击「编辑限制」,添加远程账户,勾选本地启动、远程启动、本地激活、远程激活的允许权限;
- 同时检查「访问权限」的「编辑限制」,确保账户拥有本地访问和远程访问的允许权限。
添加用户到特定本地组
把远程监控账户添加到目标Windows服务器的Performance Monitor Users组,这个组默认拥有WMI服务状态查询的必要权限,比直接加管理员组更符合最小权限原则。检查WBEM目录权限
目标服务器的C:\Windows\System32\wbem目录是WMI的核心文件存储区,需要给远程账户分配读取和列出文件夹内容的权限,特别是子目录wbem\repository,确保账户能读取WMI存储的服务数据。验证权限是否生效
可以先用系统自带的wmic命令测试,在本地执行:wmic /node:远程服务器IP /user:监控账户名 /password:账户密码 service where state="Running" get name,state如果命令能正常返回运行中的服务列表,说明权限配置没问题,再回到Python脚本排查代码细节。
内容的提问来源于stack exchange,提问作者Mikel Sanchez
相关产品推荐
相关产品推荐

