題 每次更新Java時,如何防止安裝Ask.com工具欄?


正如許多人都痛苦地意識到的那樣,Oracle不僅繼續將Java安裝與Ask.com中無用的Internet瀏覽器工具欄捆綁在一起,而且還默認啟用它的安裝。除了工具欄,Ask還會在您的瀏覽器中使用Ask替換您喜歡的搜索引擎。

此外,Java安裝實際上建議安裝這個無用的垃圾,這意味著任何非IT人員都很可能會檢查並安裝它(畢竟,它默認啟用並且友好的Java安裝程序確實推薦了,對嗎?)。

為了增加侮辱傷害,即使你刪除了Ask Toolbar,你也可以確保在下一次Java更新到來時很快再次看到它(由於Java的大量安全修復,這似乎經常發生,但是那是另一個故事)。

每當我更新Java時,我都會正確刪除複選標記以安裝Ask Toolbar,但是當支持我的家人和朋友時,顯然他們沒有。

如何防止首先安裝討厭的Ask.com工具欄?


229
2018-02-10 03:14


起源


我總是下載java的離線版本,似乎沒有“廣告”。 - kobaltz
@kobaltz:當你更新它時,該版本的行為如何(如果你只按下一個,下一個,下一個)?你有問工具欄嗎?我對這個解決方案的想法特別適用於在用戶不是最精通IT的計算機上實現。用戶可能會忘記取消選中Ask Toolbar並且絕對不會亂用離線安裝程序;-) - abstrask
考慮簽署此請願書 change.org/petitions/... :) - Mxx
@RasmusRask - Ask.com不包含在離線安裝程序中。 - Ramhound
強制性閱讀:密切關注Oracle如何使用Java更新安裝欺騙性軟件 - zdnet.com/... - Walt Stoneburner


答案:


更新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版本,請參見上文。 我自己挖掘了一下這個問題,我發現在自動更新安裝程序中有一個隱藏的開關來禁用贊助商提供。

在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

249
2018-03-08 14:43



這是一個非常優雅和優雅的解決方案。很好找!讓我們希望Java繼續遵守該註冊表設置,並且不要突然決定使用其他價值 - 你知道,只是為了推動贊助商軟件無論如何;-) - abstrask
我剛剛使用Java RE 7更新17測試了虛擬機中的註冊表設置.Ask工具欄確實沒有安裝。甜!我喜歡這個比我自己更多的修復,所以我會改變接受的答案。謝謝! :-) - abstrask
我只想確認SPONSORS = DISABLE選項對我有用。它現在是我們工作站GPO的一部分。 - myron-semack
可下載的文件為您提供方便: pastebin.com/download.php?i=iTkxyPum - dtech
年度答案!!!! - Matias Nino


編輯2014-02-02: 使用JavaRE 7u51,Ask工具欄現在安裝到名為“AskPartnerNetwork”的子文件夾中,而不是“Ask.com”。人們可能會懷疑這一點是什麼......同時,@ Danilo Roascio的註冊表值仍然得到遵守,並且效果與以前一樣好。

這只是強調簡單的註冊表修復,仍然是最簡單和最好的解決方案。如果Java安裝程序發生更改,以便忽略此註冊表值,則仍可以使用以下腳本作為解決方法 - 只需確保更新Ask Toolbar路徑。


防止Ask Toolbar再次安裝的最簡單方法是創建Ask Toolbar安裝到的文件夾並修改權限,因此沒有人可以寫入它。

首先,確保已刪除Ask工具欄。然後將以下代碼複製到記事本,將其另存為.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的ICACLS KB919240,或通過更新版本 KB943043 (但必須先要求後者,之後您將通過電子郵件收到下載鏈接)。為此,兩個版本都應該同樣有效。

我已經使用安裝程序驗證了Java 1.7更新13,即使我選中了複選框,Ask Toolbar也確實無法安裝。

類似的方法很可能用於阻止大多數其他類型的背馱式軟件。

編輯#1

Windows資源管理器怪癖:訪問被拒絕

如果您嘗試打開該文件夾,Windows資源管理器會有點奇怪。即使您仍然具有該文件夾的讀取權限,Windows資源管理器也會告訴您訪問被拒絕,即使只有寫訪問被拒絕。

如果您只是首先被分配了讀取權限,則不會發生這種情況,但是當您為該文件夾分配了讀/寫權限時,似乎會發生這種情況。 然後 被拒絕寫訪問權限。

恢復權限

該腳本已更新為添加“自述”文本文件和用於再次刪除限制的腳本。兩者都存儲在32位程序文件文件夾中。


46
2018-02-10 03:14



我建議在文件夾中留下一個文本文件,解釋為什麼“ask.com”文件夾在那里以及它的設計目的。這樣,當你回顧3年後的文件夾時,你會知道它的原因是什麼。 - Richard
@Richard:可能是個好主意;-) - abstrask
@Richard:Aagain,非常好主意。我已經更新了腳本以添加解釋性的自述文件。但是,由於Windows資源管理器的怪癖,它直接存儲在Program Files中,而不是存儲在Ask.com文件夾中。該腳本現在還保存了一個小腳本以恢復更改,因此您無需記住所執行的操作或ICACLS的語法。 - abstrask
對腳本的小更新:ProgramFiles路徑現在與語言環境無關。 - abstrask
@Pacerier:沒有理由不這樣做。閱讀我的答案的頂部。我在簡單明了的註冊表mod之前提出了解決方案。如果Oracle停止尊重註冊表設置,或者作為阻止其他軟件的想法,我將我的答案保留為後備,捎帶其他軟件而不是Java - abstrask


考慮使用 https://ninite.com/ 選擇您想要安裝/更新的所有應用程序,只需單擊一下,它就會只安裝那些應用程序,而不是像Java中的Ask工具欄那樣的額外垃圾。 如果系統已經擁有給定應用程序的最新版本,Ninite將跳過該安裝。此外,您不需要每次都重新生成它的包。相同的.exe將確保您始終安裝最新版本。 告訴你的朋友/家人每月運行一次,它會確保它們始終是最新的。

更新: 或者,如果您從中安裝JRE http://www.oracle.com/technetwork/java/javase/downloads/index.html 它沒有Ask或McAfee工具欄。 (之後不確定自動更新)。


19
2018-02-10 21:24



我喜歡Ninite,但它有(至少)兩個缺點:a)Ninite不允許你區分32位和64位Java(至少不是我所知道的) - 在64位機器上,你將得到32和64位Java安裝,但大多數只需要32位。 B)無提示安裝/更新是一項高級功能,而Java內置了自動更新功能(但可能很難看) - abstrask
是否還安裝了64位jre真的很重要嗎?它並沒有減慢系統速度,一旦瀏覽器升級到64位,它們就會有適當的插件準備就緒。只要他們看到java更新彈出窗口運行Ninite安裝程序,就告訴您的朋友/家人。您不需要付費的Ninite更新程序應用程序。或者甚至將Ninite放入Windows調度程序中以自動運行,但是經常需要並保持這些系統是最新的。 - Mxx
“如果還安裝了64位jre,真的很重要嗎?” - 是的,當它根本不需要時,我認為這很重要。但話說回來,當涉及到不必要的軟件時,我有點迂腐;-)。此外,我以前經歷過Ninite安裝的Java,64位版本從未更新過。當然這可以解決我只是指示我的“用戶”定期運行Ninite包。但話說回來,範圍只是為了防止通過Java或其他方式安裝Ask.com工具欄。像Secunia PSI和CSIS Heimdal這樣的工具可以使大多數第三方應用程序保持最新狀態。 - abstrask
Java自動更新程序似乎只更新32位版本。如果您還安裝了64位,它將被遺忘。 - Martijn Heemels


另一種方法是防止ask.com域的DNS解析。我通過設置我的網絡的DNS緩存/解析器(未綁定)來測試這個,以拒絕ask.com的查詢,然後選中ask工具箱來更新java。結果是沒有安裝。

這種方法有缺點(如果你認為這樣),ask.com域將不可用。 但它有一個獎勵,即ask.com“感染”系統可能被發現(因為用戶可能有搜索問題)允許進行消毒。

另一個好處是每台計算機都不需要進行任何更改。 DNS解決方案可立即同時適用於所有系統。請注意,必須阻止其他DNS緩存 - 這在大多數受控環境中非常典型 - 防火牆阻止通過端口53從除DNS內部DNS緩存/解析器之外的所有DNS訪問外部DNS。


12
2018-02-10 20:44



“這種方法有缺點(如果你認為這樣),ask.com域將不可用” - 我不認為這是一個缺點;-)。對於我通常支持的計算機,我無法在路由器級別配置它,因此無論如何都是每台計算機的工作。 - abstrask
根據您的回答,darkphader,127.0.0.1 www.ask.com的主機文件條目可以適用於個人計算機。 - Bryan


2014年11月:甲骨文現已披露,此處的答案基本上已經過時 這個。或者至少我們可以說現在有一個“官方”解決方案。

首先:Ask工具欄只作為選項包含在Java安裝程序的Consumer版本中(您獲得的那個) java.com)而Java安裝程序的企業版(你得到的那個) java.sun.com)從來沒有。所以關於Ask東西的問題“僅”對於私人個人類型用戶來說是“問題”。我把“僅”放在引號中因為我也對它感到惱火。它不是企業IT部門存在的討論,僅僅因為選項不存在。

好的,讓我們關注Java安裝程序的Consumer版本。

現在Windows控制面板上的Java小部件有一個選項 永久性 禁用“提示”,詢問您詢問的位置以及您之前必須記住取消選擇該選項的位置。

enter image description here

你只需要做一次然後再做一次。我仍然希望Oracle從Java的Consumer版本中完全刪除它,但這個解決方案至少意味著你只需要說“不”一次。

還有一個命令行選項。更多信息 這裡


10
2017-11-26 09:50





對於那些感興趣的人 - 我創建了可用於組策略的管理模板(一個用於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"

您現在應該在組策略中看到它們: Group Policy

我希望這些信息可以幫助其他人將這些垃圾從他們的網絡中刪除!

-麥克風


6
2017-08-16 17:12



很適合企業部署,雖然我個人更喜歡使用組策略首選項部署註冊表設置,而不是擺弄定制ADM模板中的語法正確;-) - abstrask


評論中提到了這一點,但在任何答案中都沒有明確解釋:

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位安裝程序似乎只是脫機。


5
2018-05-01 20:48



這很棒,但您仍需要在每次更新時取消選中它。 - Jirka-x1


javaruntime 打包 巧克力味 似乎避免安裝Ask工具欄。我一直在運行該軟件包,不幸的是,它是自動更新程序,並且在從這個初始源更新後沒有看到安裝了Ask工具欄。我懷疑java updater遵循原始安裝參數。

僅供參考,Chocolatey是一個命令行Windows應用程序/包管理器,就像apt-get for Linux一樣。


3
2017-11-11 20:59