首页 > 解决方案 > 如何在ansible上运行单个powershell命令?

问题描述

这是我的剧本上的 powershell 命令:

- name: "Execute Powershell from Ansible"
  ignore_errors: yes
  ansible.windows.win_shell: (Get-Acl -Path "C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn") | Format-list

这是来自ansible的错误:

{
"ansible_loop_var": "item",
"_ansible_no_log": false,
"item": "(Get-Acl -Path \"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\Binn\") | Format-list",
"changed": false,
"msg": "Get-AnsibleParam: Missing required argument: _raw_params",
"_ansible_item_label": "(Get-Acl -Path \"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\Binn\") | Format-list" 
}

标签: powershellansible

解决方案


错误是

缺少必需的参数:_raw_params

以另一种方式转义引号,如下所示:

- name: Execute Powershell from Ansible
  ansible.windows.win_shell: |
    Get-Acl -Path "C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn" | Format-list

而且,不要ignore_errors: yes用作第一个使用的模块。


推荐阅读