为什么Ansible的win_regedit模块无法修改Windows注册表值?
问题原因
- 核心错误是混淆了PowerShell命令参数与Ansible win_regedit模块的参数定义:
ansible.windows.win_regedit模块用于指定注册表值内容的参数是data,而非你当前使用的value。 - 从你提供的
-vvv调试输出可以验证:模块实际接收到的name参数值为"0",你填写的value参数属于模块无法识别的无效参数,导致参数错位,模块实际在检查路径下名为0的无关注册表值是否为0,完全没有读取到目标键fDenyTSConnections的当前值,自然判定无需修改,返回changed: false。
解决方案
将任务配置中的value参数替换为data即可,正确配置如下:
- name: Set Registry key to enable RDP ansible.windows.win_regedit: path: 'HKLM:\System\CurrentControlSet\Control\Terminal Server' name: 'fDenyTSConnections' data: 0 type: dword
如果修改后仍存在参数解析异常,可升级ansible.windows集合到最新稳定版本,避免旧版本的参数处理bug。
内容的提问来源于stack exchange,提问作者Tobias
相关产品推荐
相关产品推荐

