如何防止每次 Java 更新时安装 Ask.com 工具栏?

如何防止每次 Java 更新时安装 Ask.com 工具栏?

许多人都痛苦地意识到,Oracle 不仅继续将 Java 安装与 Ask.com 的无用 Internet 浏览器工具栏捆绑在一起,而且还默认启用其安装。除了工具栏之外,Ask 还会用 Ask 替换浏览器中您最喜欢的搜索引擎。

此外,Java 安装程序甚至会实际建议安装这个无用的垃圾,这意味着任何不懂 IT 的人都很可能会选中它并安装它(毕竟,它是默认启用的,友好的 Java 安装程序也会推荐它,对吧?)。

更糟糕的是,即使你删除了 Ask Toolbar,当下一次 Java 更新发布时,你肯定很快就会再次看到它(最近由于对 Java 进行了大量安全修复,这种情况似乎经常发生,但那是另一回事)。

每当我更新 Java 时,我都会及时删除安装 Ask Toolbar 的勾选标记,但在支持我的家人和朋友时,他们显然不会这样做。

我怎样才能从一开始就防止安装令人厌烦的 Ask.com 工具栏?

答案1

更新2016-02-21:似乎下面的旧注册表项不再用于禁用赞助商。从 Java 7u65 和 8u11(Mac OS X 上为 8u40)开始支持的方式通过 Java 控制面板直接禁用赞助商优惠。在 Windows 中:

Control Panel → Java → Advanced → Miscellaneous (scroll to bottom) →Suppress sponsor offers when installing or updating Java

从 7u55(Mac OS X 上为 8u40)开始,您还可以通过命令行运行带有特殊参数的 Java 安装程序来禁用赞助商优惠:

jre-7u55-windows-i586-iftw.exe SPONSORS=0

对于那些仍然需要以编程方式禁用赞助商的人来说,现在似乎只需添加以下行C:\ProgramData\Oracle\Java\java.settings.cfg(如果不存在则创建一个新文件)就足够了。

SPONSORS=0

请注意最后一种方法没有记录并且不受支持,跟老的一樣!


更新 2016-02-21:以下是禁用赞助商的旧方法,仅适用于 7u65 以下的 Java 版本。对于较新的 Java 版本,请参见上文。我自己深入研究了一下这个问题,发现自动更新安装程序中有一个隐藏的开关可以禁用赞助商提供的服务。

regedit.exe在 Windows 注册表编辑器 ( )中打开以下键:

  • HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft(仅适用于 Windows 64 位)

并在它们中创建一个名为的新String Value(类型REG_SZSPONSORS有價值DISABLE(名称和值必须大写)。

或者,将以下代码复制并粘贴到名为的文本文件中disable_java_sponsors.reg,然后双击它以将这些值导入注册表。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft]
"SPONSORS"="DISABLE"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft]
"SPONSORS"="DISABLE"

请注意,此开关不仅禁用 Ask.com 工具栏安装和提示,而且还禁用所有可能与自动更新设置/在线设置捆绑在一起的赞助商(Google 工具栏、Yahoo 工具栏、McAfee 等...)


.REG另一种方法是将以下两行复制并粘贴到提升的 CMD 提示符中,而无需下载并重命名或创建新文件:

reg add HKLM\SOFTWARE\JavaSoft /v "SPONSORS" /t REG_SZ /d "DISABLE" /f 
reg add HKLM\SOFTWARE\Wow6432Node\JavaSoft /v "SPONSORS" /t REG_SZ /d "DISABLE" /f

答案2

编辑2014-02-02:使用 JavaRE 7u51,Ask 工具栏现在安装到名为“AskPartnerNetwork”而不是“Ask.com”的子文件夹中。人们可能会怀疑这样做的意义何在...与此同时,@Danilo Roascio 的注册表值仍然有效,并且像以前一样正常工作。

这只是强调了简单的注册表修复仍然是最简单和最好的解决方案。如果 Java 安装程序发生变化,从而忽略此注册表值,则仍可以使用以下脚本作为解决方法 - 只需确保更新 Ask Toolbar 路径即可。


我能想到的防止再次安装 Ask Toolbar 的最简单的方法是创建 Ask Toolbar 安装的文件夹并修改权限,这样就没有人可以对其进行写入。

首先,确保 Ask Toolbar 已被删除。然后将以下代码复制到记事本,将其保存为 .cmd 文件并在提升的命令提示符中运行它:

REM Detect processor architecture
set proc_arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" ( 
    if not defined PROCESSOR_ARCHITEW6432 set proc_arch=x86
) 

REM Define Ask Toolbar path
if "%proc_arch%" == "x86" set AskPath=%ProgramFiles%\Ask.com
if "%proc_arch%" == "x64" set AskPath=%ProgramFiles(x86)%\Ask.com
set AskReadme=%AskPath%\..\Ask.com_ReadMe.txt
set AskRevert=%AskPath%\..\Ask.com_RestorePermissions.cmd

REM Create dummy Ask Toolbar folder
md "%AskPath%"

REM Add explanatory text file, as to why the dummy folder is there
echo The 'Ask.com' folder is has been created and write protected,> "%AskReadme%"
echo in order to prevent Ask.com Toolbar from being 'accidentally'>> "%AskReadme%"
echo installed, e.g. by Java.>> "%AskPath%\readme.txt">> "%AskReadme%"
echo.>> "%AskReadme%"
echo This has been done using ICACLS by denying write access to the>> "%AskReadme%"
echo EVERYONE security group.>> "%AskReadme%"
echo.>> "%AskReadme%"
echo To revert permissions run:>> "%AskReadme%"
echo %AskRevert%>> "%AskReadme%"

REM Create script to remove restrictions
echo icacls "%AskPath%" /remove:d *S-1-1-0> "%AskRevert%"

REM Deny everyone (SID: S-1-1-0) write access
icacls "%AskPath%" /deny *S-1-1-0:(OI)(CI)W

请注意:ICACLS 包含在 Windows Vista 及更高版本中。您可以通过 Microsoft 下载适用于 Windows XP/Server 2003 的 ICACLSKB919240或通过KB943043(但必须先请求后者,之后您将通过电子邮件收到下载链接)。为此,两个版本应该同样有效。

我已经使用 Java 1.7 update 13 的安装程序进行了验证,即使我选中该复选框,Ask Toolbar 也确实无法安装。

类似的方法很可能可以用来阻止大多数其他类型的搭载垃圾软件。

编辑#1

Windows 资源管理器怪癖:拒绝访问

如果您尝试打开该文件夹,Windows 资源管理器的行为会有些奇怪。即使您仍具有该文件夹的读取权限,Windows 资源管理器也会告诉您访问被拒绝,尽管只有写入权限被拒绝。

如果您一开始只被分配了读取权限,则不会发生这种情况,但当您被分配了文件夹的读/写权限时,似乎会发生这种情况,并且然后被拒绝写访问。

恢复权限

脚本已更新,添加了“自述”文本文件和用于再次删除限制的脚本。两者都存储在 32 位程序文件文件夹中。

答案3

考虑使用https://ninite.com/ 选择您想要安装/更新的所有应用程序,只需单击一下,它就会只安装这些应用程序,而不会出现像 Java 中的 Ask 工具栏这样的额外垃圾。如果系统已经拥有给定应用程序的最新版本,Ninite 将跳过该安装。此外,您不需要每次都重新生成其包。相同的 .exe 将确保您始终安装最新版本。只需告诉您的朋友/家人每月运行一次,它就会确保他们始终保持最新状态。

更新:或者,如果您从以下位置安装 JREhttp://www.oracle.com/technetwork/java/javase/downloads/index.html它没有附带 Ask 或 McAfee 工具栏。(不确定之后是否会自动更新)。

答案4

2014 年 11 月:这里的答案大部分都已过时,因为 Oracle 现已披露。或者至少我们可以说现在有一个“官方”解决方案。

首先:Ask 工具栏仅作为 Java 安装程序消费者版本(从 获得java.com)的一个选项包含在内,而 Java 安装程序企业版本(从 获得java.sun.com)从未包含该工具栏。因此,有关 Ask 的问题“仅”是私人个人用户的问题。我将“仅”放在引号中,因为我也对此感到烦恼。企业 IT 部门并未讨论过这个问题,只是因为没有该选项。

好的,让我们关注 Java 安装程序的消费者版本。

如今,Windows 控制面板上的 Java 小部件有一个选项永久禁用询问您有关询问的“提示”,以及之前您必须记住取消选择该选项的提示。

在此处输入图片描述

您只需执行一次,之后就再也不用执行了。我仍然希望 Oracle 能够将其从 Java 消费者版本中完全删除,但此解决方案至少意味着您只需说一次“不”。

还有一个命令行选项。更多信息这里

相关内容