为什么ansible win_shell模块使用powershell5,而powershell7设置为默认值?

xt0899hw  于 2023-03-30  发布在  Shell
关注(0)|答案(1)|浏览(202)

我正在使用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模块忽略了注册表中的默认设置。有人知道我做错了什么吗?

axzmvihb

axzmvihb1#

将Powershell 7安装路径(pwsh.exe所在的位置)和模块路径添加到环境变量,并从那里删除5.x路径。同时将pwsh.exe重命名为powershell.exe。

相关问题