此外,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安装程序的命令行来禁用赞助商报价: br />
jre-7u55-windows-i586-iftw.exe SPONSORS=0
对于仍然需要以编程方式禁用发起人的那些人来说,现在似乎已经可以将以下行添加到
C:\ProgramData\Oracle\Java\java.settings.cfg
中(创建一个新文件,如果它不存在)。 SPONSORS=0
请注意,与旧方法一样,后一种方法也没有记录和不支持!
UPDATE 2016-02 -21:以下一种禁用赞助者的旧方法,它仅适用于7u65以下的Java版本。有关较新的Java版本,请参见上文。我自己仔细研究了一下问题,发现在自动更新安装程序中有一个隐藏的开关可以禁用赞助商报价。
在Windows注册表编辑器(
regedit.exe
)中打开以下键:HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft
(仅在Windows 64位上可用)并在它们两个中创建新的
String Value
(类型REG_SZ
)名为SPONSORS
的值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
评论
那是一个非常整洁而优雅的解决方案。好发现!让我们希望Java继续遵循该注册表设置,并且不要突然决定使用另一个值-您知道,无论如何只是推动赞助商软件;-)
–摘要
2013年3月9日17:00
我刚刚使用Java RE 7 update 17在虚拟机中测试了注册表设置。Ask工具栏的确没有安装。甜!我比我自己更喜欢此修复程序,因此我将更改对此的可接受答案。谢谢! :-)
–摘要
2013年3月9日17:10
我只是想确认SPONSORS = DISABLE选项也适用于我。现在,它已成为我们的工作站GPO的一部分。
– myron-semack
13年4月16日在22:18
为了您的方便而下载的文件:pastebin.com/download.php?i=iTkxyPum
– dtech
13年4月30日在10:53
年度答案!!!
–马蒂亚斯·尼诺(Matias Nino)
13年6月28日在6:51
#2 楼
编辑2014-02-02:使用JavaRE 7u51,Ask工具栏现在安装在名为“ AskPartnerNetwork”的子文件夹中,而不是“ Ask.com”。可能有人怀疑这是什么意思...同时,@ Danilo Roascio的注册表值仍然得到遵守,并且与以前一样工作。这只是说明简单的注册表修复是仍然是最简单,最好的解决方案。如果Java安装程序发生更改,从而忽略了该注册表值,则仍可以使用以下脚本作为解决方法-只需确保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
请注意:Windows Vista中包含ICACLS然后。您可以通过Microsoft KB919240下载Windows XP / Server 2003的ICACLS,也可以通过KB943043下载更新的版本(但必须首先请求后者,然后您将通过电子邮件收到链接以进行下载)。为此,两个版本都应能很好地工作。
我已经使用Java 1.7更新13的安装程序进行了验证,即使我选中了该复选框,Ask工具栏也确实无法安装。
很可能会使用类似的方法来阻止大多数其他类型的piggy带式垃圾软件。
编辑#1
Windows资源管理器怪癖:拒绝访问
如果尝试打开文件夹,Windows资源管理器的行为会有些奇怪。即使您仍具有对该文件夹的读取访问权限,Windows Explorer也会告诉您该访问被拒绝,即使仅写访问权限也被拒绝。
如果仅只是首先仅分配了读取访问权限,则不会发生这种情况,但似乎是当您为文件夹分配了读取/写入权限,然后又被拒绝了写访问权限时。
还原权限
脚本已更新,以添加“自述”文本文件和用于再次删除限制的脚本。两者都存储在32位程序文件文件夹中。
评论
我建议您在文件夹内保留一个文本文件,以说明为什么存在“ ask.com”文件夹以及该文件夹的用途。这样,当您回顾3年后的文件夹时,您会知道其原因是什么。
–理查德
13年2月11日在17:14
@理查德:可能是个好主意;-)
–摘要
13年2月11日在18:25
@Richard:再说一次,很好的主意。我已经更新了脚本,以添加说明性的自述文件。但是,由于Windows资源管理器的问题,它直接存储在Program Files中,而不是Ask.com文件夹中。该脚本现在还保存了一个小的脚本来还原更改,因此您不必完全记住已完成的操作或ICACLS的语法。
–摘要
13年2月11日在19:12
脚本的小更新:ProgramFiles路径现在与语言环境无关。
–摘要
13年2月16日在16:26
@Pacerier:没有理由不这样做。阅读我的答案的顶部。我在出色的简单注册表mod之前提出了解决方案。如果Oracle不再遵守注册表设置,我会保留我的答案,以作为回退;还是将其附加在Java以外的其他软件上,作为阻止其他垃圾软件的想法
–摘要
2014年11月16日下午0:11
#3 楼
考虑使用https://ninite.com/选择要安装/更新的所有应用程序,单击一次将仅安装那些应用程序,而不会像Java中的Ask工具栏那样浪费额外的资源。
如果系统已经具有给定应用程序的最新版本,则Ninite将跳过该安装。另外,您不需要每次都重新生成其软件包。相同的.exe可以确保您始终安装最新版本。
只需告诉您的朋友/家人每月运行一次,即可确保它们始终是最新的。
更新:
或者,如果您从http://www.oracle.com/technetwork/java/javase/downloads/index.html安装JRE,则它不附带Ask或McAfee工具栏。 (不确定以后是否会自动更新)。
评论
我喜欢Ninite,但是(至少)有两个缺点:a)Ninite不允许您区分32位和64位Java(至少我不知道)-在64位计算机上,您将同时获得32位和32位Java。并且安装了64位Java,尽管大多数只需要32位。 B)静默安装/更新是一项高级功能,而Java具有内置的自动更新功能(但可能很难做到)
–摘要
13年2月10日在22:08
是否还安装了64位jre真的有关系吗?这并不会减慢系统速度,一旦浏览器升级到64位,他们将准备好适当的插件。只需告诉您的朋友/家人只要他们看到Java更新弹出窗口即可运行Ninite安装程序。您不需要付费的Ninite更新器应用程序。甚至将Ninite放入Windows调度程序中,以自动运行,但要经常运行并保持这些系统为最新。
– Mxx
13年2月11日在3:24
“是否还安装了64位jre真的有关系吗?” -是的,当根本不需要时,我认为这很重要。但是话又说回来,当涉及到不必要的软件时,我有点书呆子;-)。另外,我以前使用Ninite安装的Java也曾体验过,从来没有更新过64位版本。当然,只要指示我的“用户”定期运行Ninite软件包,就可以解决此问题。但是话又说回来,范围仅仅是为了防止通过Java或其他方式安装Ask.com工具栏。 Secunia PSI和CSIS Heimdal之类的工具可以使大多数第三方应用程序保持最新状态。
–摘要
2013年2月11日14:47
Java Auto Updater似乎仅更新32位版本。如果您还安装了64位,则将其留下。
–马丁·海默斯(Martijn Heemels)
14年7月17日在8:01
#4 楼
另一种方法是防止ask.com域的DNS解析。我通过将网络的DNS缓存/解析器(未绑定)设置为拒绝对ask.com的查询,然后在选中了Ask工具栏的情况下更新Java进行了测试。结果是没有安装。此方法的缺点是(如果您认为这样的话)ask.com域将不可用。
但它具有使Ask.com被“感染”的好处。 “系统可能已经发现(因为用户可能有搜索问题),因此可以进行消毒。
另一个好处是,每台计算机都不需要进行任何更改。 DNS解决方案可立即并同时适用于所有系统。请注意,必须阻止其他DNS缓存-在大多数受控环境中这是非常典型的做法-防火墙阻止内部内部DNS缓存/解析器以外的所有端口通过端口53访问外部DNS。
评论
“这种方法有一个缺点(如果您认为这样的话),ask.com域将不可用”-我认为这不是一个缺点;-)。对于我通常支持的计算机,我无法在路由器级别进行配置,因此无论如何这将是每台计算机的工作。
–摘要
13年2月10日在20:56
按照您的答案,darkphader,www.ask.com的主机文件条目127.0.0.1可能适用于个人计算机。
–布莱恩(Bryan)
13年2月27日在21:29
#5 楼
2014年11月:由于Oracle现在已经公开了这一点,因此这里的答案在很大程度上已经过时了。或者至少我们可以说现在有了一个“官方”解决方案。首先:Ask工具栏仅作为Consumer版本的Java安装程序的一个选项包括在内(从
java.com
),而企业版Java安装程序(从java.sun.com
获得的版本)从未安装过。因此,关于“询问”问题的问题“仅”是私人个人类型用户的问题。我将“ only”用引号引起来,因为我对此也感到恼火。它不是企业IT部门中存在的讨论,仅仅是因为没有该选项。 好吧,让我们关注Java安装程序的Consumer版本。
现在Windows控制面板上的Java小部件可以永久禁用“提示”选项。询问有关Ask的信息,以及以前忘记选择该选项的位置。
您只需要执行一次,然后就不必再执行了。我仍然希望Oracle从Java的Consumer版本中将其完全删除,但是这种解决方案至少意味着您只需要说一次“ no”。
还有一个命令行选项。更多信息在这里。
#6 楼
对于您感兴趣的人,我创建了可用于组策略的管理模板(一个用于x86,一个用于x64)。它们已经过测试,可以在XP和Windows 7中运行。有关此过程的更多信息,请单击此处。
在组策略中,您可能需要转到“查看”菜单,单击“过滤”,然后取消选中“仅显示可以完全管理的策略设置。”
将以下文件另存为templatenamex86.adm并导入组策略中:
CLASS MACHINE
CATEGORY !!cat01
KEYNAME "Software\JavaSoft"
POLICY !!polname
SUPPORTED !!supOSes
EXPLAIN !!poldescr
PART !!msg01 EDITTEXT REQUIRED DEFAULT "DISABLE"
VALUENAME "SPONSORS"
END PART
END POLICY
END CATEGORY
[strings]
cat01="Java Update Sponsor Offers x86 Windows"
polname="Set Value"
supOSes="Windows 2000+"
poldescr="Enabling this policy and leaving this field reading "DISABLE" will remove sponsor offers during Java updates"
msg01="DISABLED = Sponsor Offers Disabled"
将以下文件另存为templatenamex64.adm并导入组策略中:
CLASS MACHINE
CATEGORY !!cat01
KEYNAME "SOFTWARE\Wow6432Node\JavaSoft"
POLICY !!polname
SUPPORTED !!supOSes
EXPLAIN !!poldescr
PART !!msg01 EDITTEXT REQUIRED DEFAULT "DISABLE"
VALUENAME "SPONSORS"
END PART
END POLICY
END CATEGORY
[strings]
cat01="Java Update Sponsor Offers x64 Windows"
polname="Set Value"
supOSes="Windows 2000+"
poldescr="Enabling this policy and leaving this field reading "DISABLE" will remove sponsor offers during Java updates in 64-bit Windows"
msg01="DISABLED = Sponsor Offers Disabled"
您现在应该在组策略中看到它们:
我希望这些信息也可以帮助其他人使这些垃圾远离他们的网络!
-Mike
评论
非常适合企业部署,尽管我个人更喜欢使用组策略首选项来部署注册表设置,而不是摆弄在正确的自定义ADM模板中使用语法的习惯;-)
–摘要
13年8月17日在7:25
#7 楼
注释中提到了此问题,但未在任何答案中明确说明:Java的脱机Windows安装程序不会提示您安装Ask Toolbar。 Java SE JRE安装程序的链接(如果您不知道SE或JRE意味着什么,那么这就是您想要的)当前位于:
http://www.oracle。 com / technetwork / java / javase / downloads / jre7-downloads-1880261.html
清楚地标记了x86的Windows脱机安装程序(即32位软件,包括大多数浏览器)。 64位安装程序似乎仅处于脱机状态。
评论
很好,但是每次更新时您都必须取消选中它。
– Jirka-x1
13年20月20日在10:15
#8 楼
Chocolatey上的javaruntime软件包似乎避免安装Ask工具栏。我一直在运行该软件包,但不幸的是,在运行自动更新程序,并且从此初始源进行更新后,还没有看到安装Ask工具栏。我怀疑Java更新程序是否遵循原始安装参数。FYI,Chocolatey是Windows命令行应用程序/程序包管理器,例如适用于Linux的apt-get。
评论
我总是下载java的脱机版本,该版本似乎没有“ ads”。@kobaltz:更新版本时,该版本的行为如何(如果您仅按next,next,next)?您是否获得询问工具栏。我对这个解决方案的想法是,特别是要在计算机上实施,这些计算机的用户不是IT知识最强的人。可能会忘记取消选中“询问工具栏”的用户,并且绝对不会与离线安装程序混为一谈;-)
考虑签署这份请愿书change.org/petitions/…:)
@RasmusRask-脱机安装程序中不包括Ask.com。
必读:甲骨文如何通过Java更新安装欺骗性软件-zdnet.com/…