当环境变量中的路径无效(win_stat 任务)时,winrm 出现 Ansible (2.11 +) 错误

Ansible (2.11 +) error with winrm when path invalid in environment variable (win_stat task)

我们有一个 Ansible 脚本可以在 Windows 上部署软件。其中一项任务是使用 win_stat 命令检查文件夹是否存在。

但是,在某些服务器上,当在 windows 服务器上的 'LIB' 环境变量中定义了不存在的路径时,任务会抛出错误(该路径与其他服务器无关)与我们检查的内容)

我可以用一个死板的简单脚本重现:

- hosts: all
  gather_facts: no
  tasks:
    - name: Check addon folder
      win_stat:
        path: 'C:\temp\'

错误是(详细):

The full traceback is:
(0) : Warning as Error: Invalid search path 'System.Collections.DictionaryEntry' specified in 'LIB environment variable' -- 'The system cannot find the path specified. '

(1) : using Microsoft.Win32.SafeHandles;

At line:408 char:5
+     Add-Type -TypeDefinition $link_util
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (Microsoft.Power...peCompilerError:AddTypeCompilerError) [Add-Type], Exception
    + FullyQualifiedErrorId : SOURCE_CODE_ERROR,Microsoft.PowerShell.Commands.AddTypeCommand

ScriptStackTrace:
at Load-LinkUtils, <No file>: line 408
at <ScriptBlock>, <No file>: line 76
fatal: [IADCMP019]: FAILED! => {
    "changed": false,
    "msg": "Unhandled exception while executing module: (0) : Warning as Error: Invalid search path 'System.Collections.DictionaryEntry' specified in 'LIB environment variable' -- 'The system cannot find the path specified. '\n\n(1) : using Microsoft.Win32.SafeHandles;\n"
}

Ansible 核心的 2.11.6 和 2.11.4 会出现问题,但 2.10(至少 2.10.9)不会出现问题

我想知道这是 2.11 中的新检查还是我应该打开错误报告。

EDIT1:将 'c:' 更改为 'c:\temp',因为前者的 win_stat 命令很长,后者更快

我没有为此查找正确的存储库。该错误已在 ansible.windows 集合上打开:https://github.com/ansible-collections/ansible.windows/issues/297