我陷入了困境。有问题的程序可以安装在程序文件目录(64位)或X86路径中。该程序已安装在200多台机器上。我相当确定默认安装路径是X86,因为这是默认设置。我不确定,必须涵盖两种情况。安装它的原始系统管理员没有使用.msi所以我留下了我发现的“”C:\ Program Files \ InstallShield安装信息{78AC336D-25F6-4916-A711-2EA2F69E0319} \ setup .exe“作为一个实用程序提供的远程卸载我发现的应用程序的命令。没有工作,我不能试图推出它,希望它能够工作。
鉴于此问题,是否有办法通过脚本卸载此程序,该脚本将检查程序文件和X86路径并根据位置卸载?或者,是否有一个脚本,只需要解决卸载程序,无论是否担心X86 /程序原始安装位置。我只需要在所有这些机器上卸载它。安装.bat很好。我不能做的只是通过32或64位机器的脚本获取卸载X应用程序的窗口。
我已经尝试了MsiExec.exe / X {78AC336D-25F6-4916-A711-2EA2F69E0319} / quiet,没有去。我这次可以尝试安装.msi但是丢失了,我的知识受限于脚本或任何卸载脚本来告诉“最终用户”而不会让他们混淆只是点击这里。我可以告诉他们去控制面板等等。但是他们会迷路....典型的。
有关如何编写此卸载脚本的任何想法都不是原始的.msi,我不知道如何使某些工作正常?我对任何事都持开放态度。我有两天时间来解决这个问题,我处于恐慌模式......
非常感谢任何有关代码的想法或帮助。
此致 布赖恩
答案 0 :(得分:3)
wmic
可以调用卸载程序。我没试过这个,但我认为它可能有用。
wmic /node:computername /user:adminuser /password:password product where name="name of application" call uninstall
如果您不确切知道程序自己调用的内容,请执行
wmic product get name | sort
并寻找它。您也可以使用SQL-ish通配符卸载。
wmic /node:computername /user:adminuser /password:password product where "name like '%j2se%'" call uninstall
...例如,会对*j2se*
执行不区分大小写的搜索,并卸载“J2SE Runtime Environment 5.0 Update 12”。 (请注意,在上面的示例中,%j2se%
不是环境变量,而是单词“j2se”,每端都带有SQL-ish通配符。如果搜索字符串可能与环境或脚本变量冲突,请使用双倍百分比指定文字百分号,如%%j2se%%
。)
如果在完成卸载之前wmic提示y/n
确认,请尝试以下操作:
echo y | wmic /node:computername /user:adminuser /password:password product where name="whatever" call uninstall
...在它问之前将y
传递给它。
我没有测试过这个,但无论如何它值得一试。如果它在一台计算机上运行,那么您可以使用for循环遍历包含组织内所有计算机名称的文本文件,或者将其放在域策略登录脚本中。
答案 1 :(得分:2)
假设您正在处理 Windows 7 x64 以及先前使用某种安装程序安装的内容,您可以打开 regedit 并搜索下的密钥
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
(引用 32位程序)作为程序名称的一部分,或
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
(如果它实际上是64位程序)。
如果您在其中一个中找到与您的程序匹配的内容,则该键中UninstallString
的内容通常会为您提供您正在寻找的确切命令(可以在脚本中运行)。
如果您在这些注册表位置找不到任何相关内容,则可能已安装"通过解压缩文件。因为您提到通过控制面板删除它,所以我认为这可能不是案例;如果它在那里的程序列表中,它应该在我提到的一个注册表项中。
然后在 .bat 脚本中执行
if exist "c:\program files\whatever\program.exe" (place UninstallString contents here)
if exist "c:\program files (x86)\whatever\program.exe" (place UninstallString contents here)
答案 2 :(得分:0)
根据我的经验,要在脚本中使用wmic
,您需要获得嵌套引用权:
wmic product where "name = 'Windows Azure Authoring Tools - v2.3'" call uninstall /nointeractive
引用查询和名称。但是wmic只会卸载通过Windows安装程序安装的东西。