使用 ansible 使用 .ini 文件部署 .exe

使用 ansible 使用 .ini 文件部署 .exe

我有带有 setup.ini 文件的 installer.exe。它安装得很完美。只要我双击或通过 cli 打开安装程序即可。当我尝试远程运行它时,安装程​​序只会忽略 .ini 文件。它不接受任何参数。它是 Windows 10 Pro。

win_copy 的输出

ok: [DESKTOP-123.domain] => {
    "changed": false,
    "checksum": "0...7",
    "dest": "C:\\setup.ini",
    "operation": "file_copy",
    "original_basename": "setup.ini",
    "size": 179,
    "src": "\\\\server\\path\\setup.ini" }
ok: [DESKTOP-123.domain] => {
    "changed": false,
    "checksum": "2...b",
    "dest": "C:\\Installer.exe",
    "operation": "file_copy",
    "original_basename": "Installer.exe",
    "size": 659712696,
    "src": "server\\path\\Installer.exe" }

安装程序剧本

  - name: Installer
    win_package:
        path: C:\Installer.exe
        product_id: '{1...5}'
        state: present

ansible 使用的用户对这两个文件都有权限,我可以看到 Installer.exe 在任务管理器中运行,但它实际上不起作用,因为设置在这个 .ini 文件中。

答案1

我认为有帮助的是添加 /install 参数来禁用 ini 文件映射。

尝试像这样运行 win_package 任务:

- name: Installer
  win_package:
    path: C:\Installer.exe
    product_id: '{1...5}'
    arguments: /install

这与第一个例子类似win_package 文档

在 Microsoft 文档页面上更改安装模式您可以在“/install”参数旁边看到一条注释:

禁用 .ini 文件映射到主目录。所有 .ini 文件都将被读取并写入系统目录。在远程桌面会话主机服务器上安装应用程序时,必须禁用 .ini 文件映射。

希望这可以帮助。

相关内容