You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible用win_command部署Windows服务报错:Resolve-ExecutablePath未识别

问题分析与解决

你遇到的Resolve-ExecutablePath未识别错误,是因为Ansible 2.9.27版本的ansible.windows.win_command模块内部依赖的PowerShell cmdlet在环境中不存在,通常由模块版本不兼容或命令格式处理逻辑导致。以下是几种可行的解决方法:

方法1:改用win_shell模块执行命令

win_shell通过PowerShell执行命令,对复杂引号的处理更友好,能避开win_command的兼容性问题:

- name: Register as windows service
  ansible.windows.win_shell:
    sc.exe create "{{ otelservicename }}" start= auto binpath= "\"{{ otelcollectorexe }}\" --config \"{{ otelconfigurationfile }}\""
  register: create_command_info

方法2:使用专用的win_service模块(推荐)

Ansible提供win_service模块专门管理Windows服务,无需手动调用sc.exe,既避免参数转义麻烦,也更符合Ansible最佳实践:

- name: Create OTel Collector Windows service
  ansible.windows.win_service:
    name: "{{ otelservicename }}"
    start_mode: auto
    path: "\"{{ otelcollectorexe }}\" --config \"{{ otelconfigurationfile }}\""
    state: present

方法3:兼容模块版本(可选)

如果坚持使用win_command,可安装与Ansible 2.9.27兼容的ansible.windows模块版本,执行以下命令更新:

ansible-galaxy collection install ansible.windows:==1.9.0

(注:1.9.0为经测试兼容Ansible 2.9的版本,可根据实际情况调整)

内容的提问来源于stack exchange,提问作者saravana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 10:33:22