我正在使用ansible运行Windows的打包器构建来配置VM。
我通过OpenSHH连接到虚拟机。我将powershell 7设置为OpenSSH的默认shell。当我在命令行上通过ssh连接到虚拟机时,横幅显示PowerShell 7.1.3。
我通过ansible-playbook运行以下代码:
- name: Check powershell version
ansible.windows.win_shell: |
Get-Host | Select-Object Version
- name: Check powershell version
ansible.windows.win_shell: |
Get-Host | Select-Object Version
args:
executable: pwsh
第一个任务返回5.1.19041.1023
第二个任务返回7.1.3
因此,当我不指定可执行文件时,win_shell运行的是powershell.exe,也就是powershell 5。
当我将可执行文件指定为pwsh,也就是powershell 7时,它的行为是正确的。
我不明白为什么win_shell模块忽略了注册表中的默认设置。有人知道我做错了什么吗?
1条答案
按热度按时间axzmvihb1#
将Powershell 7安装路径(pwsh.exe所在的位置)和模块路径添加到环境变量,并从那里删除5.x路径。同时将pwsh.exe重命名为powershell.exe。