我有一个接受用户输入的PowerShell脚本ex1.ps1,ex1.ps1有打开新PowerShell以执行exe文件的命令:
Start-Process -FilePath "$PSHOME\powershell.exe" -ArgumentList "-command C:\APPLICATION1.exe`我想在远程主机上执行ex1.ps1。我正在尝试使用Ansible-playbook调用ex1.ps1,如下所示:
# ansible-playbook script
- name: Run basic PowerShell script
win_powershell:
script: |
powershell.exe -ExecutionPolicy ByPass -File C:/Users/ex1.ps1它执行得很好,但在远程主机上,没有打开PowerShell提示符来获取输入。
发布于 2021-09-11 18:16:08
当使用Ansible这样的工具进行部署时,您不应该期望手动输入。我不知道您正在尝试运行的实际程序,但这里最好的解决方案是找出在没有用户交互的情况下安装/启动/运行程序所需的参数。
如果您能够提供程序的名称(并且它不是您组织内部的内容),则可能能够提供更完整的答案。
与您的问题无关,除非您过度泛化了这个问题的代码,否则没有理由仅仅为了运行可执行文件而从PowerShell中调用powershell.exe。您可以将Start-Process或call operator &直接与有问题的exe路径一起使用。
我有一个answer here,它比Start-Process更详细地介绍了&的用法。
https://stackoverflow.com/questions/69082799
复制相似问题