问题描述
我目前正在使用Ansible在Windows机器上安装其他服务,但是我需要在属性窗口中编辑一些参数。我尝试使用下面的代码运行名为CCM的AHK脚本,但是它不能按预期运行(不更改任何参数)。
- name: Run CCM script to configure server
win_psexec:
command: 'C:\temp\CCM.exe'
interactive: yes
system: yes
我想知道是否可以在Ansible中使用AHK?
解决方法
是的,可以在Ansible中运行AutoHotKey,尽管只有在没有其他脚本选项可用时才应该这样做
AHK必须在控制台GUI会话中运行,才能与Windows桌面进行交互。这可以通过名为psexec的扩展程序来完成,该程序是Windows Sysinternals实用程序包的一部分。您可以从Microsoft免费下载。
https://docs.microsoft.com/en-us/sysinternals/downloads/
首先找到会话ID:
for /f "tokens=3" %i in ('qwinsta console ^| find "console"') do set GUI_SESSION_ID=%i
然后使用psexec启动GUI控制台会话,然后在其中运行AutoHotkey:
psexec -i %GUI_SESSION_ID% autohotkey myscript.ahk
然后您可以像往常一样运行AHK脚本。