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": []
}
请问问题出在哪里?
答案 0 :(得分:0)
不幸的是,并非所有命令都可以通过远程Powershell运行。发生此类错误的主要原因是,一些命令(可能正在运行的命令)需要提升的控制(UAC)或期望用户响应的UI。当通过远程Powershell(winrm,ansible使用的基础技术)运行时,此类命令将不起作用。