我在一台机器上进入运行一个.bat文件,此文件中只是简单的运行一条命令dir一条路径然后find关键字free
举例:dir C:\temp | find "free"
在Ansibletower中运行此bat文件就会报错,去掉后半段就可以正常运行。
请问何解?
望采纳,谢谢!
可能是Ansibletower不支持管道操作,建议把dir和find分开写,分别用两个命令来执行,或者把管道操作改成用&&来连接两个命令。
您可以尝试在命令中使用 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”模块取代管道符号。