Ansibletower中有哪些符号会出现报错?

我在一台机器上进入运行一个.bat文件,此文件中只是简单的运行一条命令dir一条路径然后find关键字free
举例:dir C:\temp | find "free"
在Ansibletower中运行此bat文件就会报错,去掉后半段就可以正常运行。
请问何解?

望采纳,谢谢!
可能是Ansibletower不支持管道操作,建议把dir和find分开写,分别用两个命令来执行,或者把管道操作改成用&&来连接两个命令。

该回答引用GPTᴼᴾᴱᴺᴬᴵ

可能是因为 Ansible Tower 的默认配置禁用了使用管道符 |,因为它被认为是不安全的操作符。因此,当您尝试在 Ansible Tower 中运行包含管道符的命令时,会出现错误。

您可以尝试在命令中使用 PowerShell 的管道符 |(| 变成了 ¦),因为 Ansible Tower 允许使用 PowerShell。例如:

dir C:\temp ¦ Select-String "free"

如果您想继续使用 cmd 命令行,请尝试在命令中转义管道符,例如:

dir C:\temp ^| find "free"

或者,您可以在 Ansible Tower 的配置中启用管道符支持。要这样做,请在 Ansible Tower 的配置文件中找到 job_allowed_commands 选项,将其设置为 .*,这将允许所有命令。但请注意,这可能会导致一些安全问题,因此应该谨慎使用。

这是因为Ansibletower不能处理Windows命令行中管道符号"|"。可以尝试使用Ansibletower模块或命令替换此符号,例如使用“register”模块可以将管道符号替换为“shell”模块,或者使用“command”模块取代管道符号。