以下是可能导致此问题的原因和相应的
Set-ExecutionPolicy RemoteSigned
此命令将启用签名过的脚本的执行,但不要禁用执行未签名脚本的选项,这是安全性的妥协。如果您希望执行未签名的脚本,请设置为Unrestricted。
远程主机上的PowerShell版本可能不兼容。请确保远程主机上安装了最新版本的.NET Framework和PowerShell。
在PowerShell脚本中执行的某些命令可能会导致远程主机停止响应,造成卡住。检查脚本中执行的每个命令,查看是否存在慢速或劣质的命令。如果是这种情况,请使用Invoke-Command cmdlet将命令在远程主机上执行为单个块,并使用-Passthru标志返回相关输出。
以下是一个使用PowerShell脚本并在远程主机上执行的Ansible Playbook的示例:
name: Execute PowerShell script on remote host win_shell: | $output = Invoke-Command -ComputerName remote_host -FilePath C:\Scripts\example-script.ps1 -Passthru Write-Output $output.stdout Write-Output $output.stderr register: result
name: Check script result debug: var: result.stdout_lines
使用上述解决方法,可以解决Ansible playbook在远程执行PowerShell脚本时被无限