管理数百台或数千台计算机,怎么快速自动化卸载程序
MsiExec / GUID方法
(The MsiExec / GUID Method)
使用注册表卸载字符串
在注册表:
只要能够在控制面板——程序里出现的软件,都会在以下三处注册表的其中一处找到它的卸载方法。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
??HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
??HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
查找要卸载的软件条目。
注册表项UninstallString条目,该条目包含,存放软件的卸载命令,卸载字符串,一条卸载命令:
MsiExec.exe /x {78190000-0011-0000-0000-0000000FF1CE} ,该命令使用程序的GUID来卸载程序。
即可以通过 MsiExec.exe /X{ProductCode} 命令来卸载程序。
ProductCode是Windows 安装程序包的全局唯一标识符 (GUID), 我们可以通过注册表来获取ProductCode
实例: 用MsiExec.exe 自动卸载程序.
然后在CMD中直接调用这个命令, 会弹出一个对话框,点击”是” 后, 软件就能被卸载了。
在自动化测试中,我们不想弹出这个对话框,而是希望直接卸载。 只要加个参数 /quiet 就可以了
静默卸载的命令是: MsiExec.exe /X{ProductCode} /quiet
GUID作为卸载参数,令人迷惑。
尝试采用MsiExec的安静方式和无用户界面方式卸载软件 ,仅仅调用了msiexec进程,并不执行卸载操作。
MsiExec.exe /x {78190000-0011-0000-0000-0000000FF1CE} /qn
使用GUID卸载时,有一个限制是,同一软件的次要版本可能具有不同的GUID。
软件产品版本1.1.8可能具有与版本1.1.5不同的GUID。 这将需要多个MSIEXEC命令来使用不同的GUID解决这些软件安装问题
使用WMIC按通配符名称卸载软件产品
Using WMIC to uninstall a software product by wildcard name
在Windows 10里面使用命令行去卸载软件
其用法为:
wmic product where '(name="xxxx")' call uninstall
但是这种方法只能卸载部分使用标准的windows installer服务进行安装卸载的软件,对于那些非标准软件这种方法会失效,换句话说有些控制面板里面出现的软件 wmic product 不一定能找出来。