Ansible无法安装Windows INF驱动程序

时间:2018-12-19 10:04:45

标签: ansible ansible-2.x

Ansible版本:2.7.5 目标操作系统:Windows Server 2016 R2

驱动程序包装文件位于C:\imdisk_inst文件夹中。

如果我在PowerShell中手动运行以下命令,它将运行正常。

Start-Process -FilePath C:\Windows\system32\rundll32.exe -ArgumentList "setupapi.dll,InstallHinf
Section", "DefaultInstall", "132", "C:\\imdisk_inst\\imdisk.inf" -Verb RunAs -WorkingDirectory C:\imdisk_inst

如果确切的命令在Ansible剧本中运行,则没有错误,但未安装文件。

这是本节剧本的一部分 - name: Install In-Memory Disk Driver win_shell: 'Start-Process -FilePath C:\Windows\system32\rundll32.exe -ArgumentList "setupapi.dll,InstallHinfSection", "DefaultInstall", "132", "C:\\imdisk_inst\\imdisk.inf" -Verb RunAs -WorkingDirectory C:\imdisk_inst'

这是ansible的输出:

TASK [Install In-Memory Disk Driver] *********************************************************************************************************************************************
task path: /home/jerry/UBS/doc/playbook/win.yml:20
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/windows/win_shell.ps1
<135.298.156.60> ESTABLISH WINRM CONNECTION FOR USER: xxx on PORT 5986 TO 135.298.156.60
EXEC (via pipeline wrapper)
changed: [135.298.156.60] => {
    "changed": true, 
    "cmd": "Start-Process -FilePath C:\\Windows\\system32\\rundll32.exe -ArgumentList \"setupapi.dll,InstallHinfSection\", \"DefaultInstall\", \"132\", \"C:\\\\imdisk_inst\\\\imdisk.inf\" -Verb RunAs -WorkingDirectory C:\\imdisk_inst", 
    "delta": "0:00:00.671929", 
    "end": "2018-12-19 09:55:51.890787", 
    "rc": 0, 
    "start": "2018-12-19 09:55:51.218858", 
    "stderr": "", 
    "stderr_lines": [], 
    "stdout": "", 
    "stdout_lines": []
}

请问问题出在哪里?

1 个答案:

答案 0 :(得分:0)

不幸的是,并非所有命令都可以通过远程Powershell运行。发生此类错误的主要原因是,一些命令(可能正在运行的命令)需要提升的控制(UAC)或期望用户响应的UI。当通过远程Powershell(winrm,ansible使用的基础技术)运行时,此类命令将不起作用。