windows - Ansible 2.9 - 转义从变量传递到 win_command 的单个 "\"反斜杠

标签 windows ansible escaping

 vars:
  - windowsLogonAccount: NT AUTHORITY\SYSTEM

 tasks:
 - name: Install Agent via CMD
    win_command: "config.cmd --windowsLogonAccount '{{ windowsLogonAccount }}'"
    args:
      chdir: "c:/agent"

我正在尝试将一个反斜杠通过 Ansible 传递到 Windows。我尝试过双反斜杠“\\”并且尝试过{{ var |安全}},但运气不好。我希望社区中的有人能为我指明正确的方向。我不敢相信它和我见过的使用替换和正则表达式的其他一些例子一样复杂......

我尝试的所有操作都不断出现双反斜杠:

2021-10-19T04:45:52.8643709Z TASK [Get Variable Output to Screen] *******************************************
2021-10-19T04:45:52.9042957Z     "msg": "My Variable Test Area 'NT AUTHORITY\\SYSTEM'"

最佳答案

----已解决----

所以这是 Ansible 输出到终端的独特之处。它们以有效的 JSON 格式写入输出,从而“自动”转义输出中的反斜杠等特殊字符。但运行时传递的实际值不包含两个反斜杠。我发布此内容是为了防止其他 Ansible 菜鸟遇到这种意外情况。

屏幕输出示例:

2021-10-19T04:46:11.6003956Z:[计算机名]:已更改! => {"changed": true, "cmd": "config.cmd --unattend --windowsLogonAccount 'NT AUTHORITY\SYSTEM'

主机的实际输出:

config.cmd --unattended --windowsLogonAccount 'NT AUTHORITY\SYSTEM'

关于windows - Ansible 2.9 - 转义从变量传递到 win_command 的单个 "\"反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69621919/

相关文章:

ios - ansible - 思科 IOS 和 "reload"命令

ansible - 使用来自变量的 Ansible 模板创建本地文件

php - 如何在 MySQL 中搜索斜杠 (\)?为什么在 where (=) 中不需要转义 (\) 但对于 Like 是必需的?

将操作系统线程限制在一个 CPU 上会很糟糕吗?

c - _mm_ 类型函数的等效 C 代码

ansible - 如何在 Jinja/Ansible 中生成一个 dict 作为 var?

css - LESS CSS 中的转义字符会插入不需要的空格

python - 如何转换Python字符串

c - 为什么 wszName 不正确?

windows - 如何让自定义视频媒体/流接收器在媒体基础中请求 RGB32 帧?