我想自动从 Windows 服务器卸载不同的 .Net SDK 框架。
我找到了一种使用 来实现此目的的方法msiexec /x
,但它要求用户确认卸载,并且只有当用户单击“是”时才会继续卸载。
我想避免这种交互,以便完全自动化。我尝试添加,/quiet
但没有帮助。
我的问题与这个问题相关使用任何脚本在 Windows Server 上静默卸载 .Net Framework。
答案1
我将在我的回答中使用免费的 自动热键。
以下 AutoHotkey 脚本将等待出现标题为“Microsoft .NET Framework 4.7 SDK”的对话框,然后单击“是”按钮:
SetTitleMatchMode, 2
WinWait, Microsoft .NET Framework 4.7 SDK
ControlGet, ControlHwnd, Hwnd,, Yes, Microsoft .NET Framework 4.7 SDK
ControlClick,, ahk_id %ControlHwnd%
ExitApp
安装 AutoHotKey 后,将脚本放入.ahk
文件中并双击进行测试。您可以通过右键单击托盘栏中的绿色 H 图标并选择退出来停止脚本。
一旦验证脚本可以正常工作,您就可以在资源管理器中右键单击.ahk
文件并选择来编译它编译脚本。这将生成一个.exe
独立的文件,因此 AutoHotkey 不需要安装在目标计算机上。
请注意,此脚本将永远等待对话框出现。您可以通过添加 计时器 它将在合理的时间后终止脚本(ExitApp)。
如果将此脚本包含在批处理文件中,则需要以非阻塞方式调用它,例如使用 启动命令。
我已经在自己的测试用例上测试了该脚本,它与您的并不完全相同,所以我盲目地使用了您屏幕截图中的值。您可能需要更正其中的错误。