windows – 要卸载所有Sun Java版本的批处理文件?
发布时间:2020-12-13 19:37:30 所属栏目:Windows 来源:网络整理
导读:我正在建立一个系统来保持 Java在我们办公室的最新状态.每个人都拥有所有不同版本的Java,其中许多都是旧的和不安全的,有些可以追溯到1.4.我有一个System Center Essentials服务器,可以推出并静默运行.msi文件,我已经测试过它可以安装最新的Java.但安装程序不
我正在建立一个系统来保持
Java在我们办公室的最新状态.每个人都拥有所有不同版本的Java,其中许多都是旧的和不安全的,有些可以追溯到1.4.我有一个System Center Essentials服务器,可以推出并静默运行.msi文件,我已经测试过它可以安装最新的Java.但安装程序不会删除旧版本(例如1.4),因此我需要卸载它们.每个人都在运行Windows XP.
巧合的是,Sun刚刚被Oracle收购,而Oracle现在已经将Java中所有“Sun”实例改为“Oracle”.因此,我可以不用担心卸载最新的Java,因为我可以只搜索并卸载所有Sun Java程序. 我在a forum post上发现了以下批处理脚本看起来很有希望: @echo off & cls Rem List all Installation subkeys from uninstall key. echo Searching Registry for Java Installs for /f %%I in ('reg query HKLMSOFTWAREmicrosoftwindowscurrentversionuninstall') do echo %%I | find "{" > nul && call :All-Installations %%I echo Search Complete.. goto :EOF :All-Installations Rem Filter out all but the Sun Installations for /f "tokens=2*" %%T in ('reg query %1 /v Publisher 2^> nul') do echo %%U | find "Sun" > nul && call :Sun-Installations %1 goto :EOF :Sun-Installations Rem Filter out all but the Sun-Java Installations. Note the tilda + n,which drops all the subkeys from the path for /f "tokens=2*" %%T in ('reg query %1 /v DisplayName 2^> nul') do echo . Uninstalling - %%U: | find "Java" && call :Sun-Java-Installs %~n1 goto :EOF :Sun-Java-Installs Rem Run Uninstaller for the installation MsiExec.exe /x%1 /qb echo . Uninstall Complete,Resuming Search.. goto :EOF 但是,当我运行脚本时,我得到以下输出: Searching Registry for Java Installs 'DEV_24x6' is not recognized as an internal or external command,operable program or batch file. 'SUBSYS_542214F1' is not recognized as an internal or external command,operable program or batch file. 然后它似乎挂起,我ctrl-c来阻止它. 通过脚本阅读,我并不了解所有内容,但我不知道为什么它会尝试将各个注册表项作为程序运行.批处理脚本有什么问题?我该如何修复它,以便我可以继续以某种方式将其转换为MSI并将其部署到每个人来清理这个办公室? 或者,你能建议一个更好的解决方案或现有的MSI文件来做我需要的吗?我只是想确保从每个人的计算机上获取所有旧版本的Java,因为我听说过使用旧版Java加载网页的漏洞,我想避免使用它们.
以下是我们使用的,作为启动脚本很好用:
on error resume next dim WshShell dim RegKey dim ScriptVerKey Set WshShell = CreateObject("WScript.Shell") 'checks to see if registry key exists,if it does,the cleanup runs. RegKey = "HKLMSOFTWAREEDUCleanup" ScriptVerKey = WshShell.RegRead(RegKey & "JAVAOldVer") if ScriptVerKey <> "1" Then Cleanup() Else WScript.Quit End If Sub Cleanup() ' Uninstall Java 1.4.1.01 WshShell.Run "msiexec /x {1666FA7C-CB5F-11D6-A78C-00B0D079AF64} /q",1,True ' Uninstall Java 1.4.2.04 WshShell.Run "msiexec /x {7148F0A8-6813-11D6-A77B-00B0D0142040} /q",True ' Uninstall Java 5.0.2 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150020} /q",True ' Uninstall Java 5.0.4 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150040} /q",True ' Uninstall Java 5.0.5 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150050} /q",True ' Uninstall Java 5.0.6 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150060} /q",True ' Uninstall Java 5.0.7 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150070} /q",True ' Uninstall Java 5.0.10 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150100} /q",True ' Uninstall Java 5.0.11 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150110} /q",True ' Uninstall Java 5.0.12 'WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150120} /q",True ' Uninstall Java 6.0.0 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160000} /q",True ' Uninstall Java 6.0.1 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160010} /q",True ' Uninstall Java 6.0.2 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160020} /q",True ' Uninstall Java 6.0.5 WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160050} /q",True ' Uninstall Java 6.0.30 (020608) WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160030} /q",True 'regkey below stops the script from running again WshShell.RegWrite "HKLMSoftwareEDU","Default" WshShell.RegWrite "HKLMSoftwareEDUCleanup","Default" WshShell.RegWrite "HKLMSoftwareEDUCleanupJAVAOldVer","REG_SZ" End Sub (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .net-3.5 – .NET Framework 3.5不会安装在VISTA 32bit上
- windows-phone-7 – Windows Phone 8平台上的GPS越野车行为
- 在Windows 10中的HTTP.SYS和IIS中禁用HTTP / 2 / SPDY
- 脚本 – 可以通过Windows登录脚本设置系统环境变量吗?
- WPF在Windows XP和Windows 7上的呈现方式不同
- Windows – 如何编程检查“密码必须满足复杂性要求”组策略
- Windows Azure网站的SSL证书
- windows – 无法升级SVN工作副本
- Windows DHCP服务器 – 分发多个默认网关?
- windows-server-2003 – 在Exchange 2003中删除超过X天的电
推荐文章
站长推荐
- windows – 如何成功更改执行策略并启用PowerShe
- IIS站点启动或停止时写入Windows事件日志
- wix – 当MSI日志文件显示“Note:1:2729”时,它
- windows-vista – UAC对开发人员有多重要?
- windows-server-2003 – 有没有办法在Windows更新
- WIN10:你不能访问此共享文件夹,解决方法
- windows – PDC已经死了,其他人没有复制我应该先
- windows-phone-7 – MVVM-light已经有一个为INav
- windows系统下,在C#程序中自动安装字体
- ms-access – 在Microsoft Access 2010中创建关系
热点阅读