題 如何禁用Chrome擴展程序而不在多個已同步的設備上禁用它們


我在4個不同的工作站上使用Chrome,並且我將所有擴展程序同步。

我遇到的問題是其中一個擴展(Chrome的手勢如果你有一個真正的鼠標,效果很好,但在Ubuntu的觸控板上,它只是妨礙了。

如果我在Ubuntu機器上禁用它,它會因所有Chrome安裝而被禁用 內部同步機制

問: 我可以在一台機器上有選擇地禁用擴展嗎?


116
2018-01-04 10:10


起源


點擊Chrome設置下拉菜單 - >高級設置 - >高級同步設置 - >選擇要同步的內容 - >取消選中同步擴展程序 - >確定。然後在每個設備上適當設置擴展名。在Chrome版本41上為我工作。 - Eric Leschinski


答案:


根據安全問題,Chrome不會同步任何包含NPAPI插件的擴展程序。

資源

什麼是NPAPI插件?

在NPAPI插件中運行的代碼具有當前用戶的完全權限,並且不會以任何方式沙盒化或屏蔽惡意輸入。處理來自不受信任來源的輸入時,例如使用內容腳本或XMLHttpRequest時,您應特別小心。

資源

理論

如果我們以Chrome使用NPAPI識別擴展程序的方式修改您的擴展程序,那麼您應該沒問題。

如何

  1. 首先,你需要一個虛擬的.dll 任何NPAPI擴展 喜歡 屏幕截圖(谷歌)。在此期間,該擴展程序已從Google Play商店中刪除,因為 谷歌決定放棄NPAPI支持。但這對我們的情況無關緊要。幸運的是 官方屏幕截圖維基 仍然包含源代碼。我們不需要完整的擴展,只需要NPAPI .dll screen_capture.dll直接下載

  2. 其次,轉到不應同步的extensions文件夾。在你的情況下 Chrome的手勢
    ..\profile\Default\Extensions\jpkfjicglakibpenojifdiepckckakgk\1.12.1_0

  3. 修改 的manifest.json 文件並添加NPAPI插件 在Stackoverflow上描述 甚至更好 developer.chrome.com

    {
      "name": "My extension",
      ...
      "plugins": [
        { "path": "screen_capture.dll" }
      ],
      ...
    }
    
  4. 修改 background.html 您不希望同步的擴展文件,也在上面的Stackoverflow答案中有所描述。

    <embed type="application/x-my-extension" id="pluginId">
    <script>
      var plugin = document.getElementById("pluginId");
      var result = plugin.myPluginMethod();  // call a method in your plugin
      console.log("my plugin returned: " + result);
    </script>
    
  5. 可以 是必要的 重新啟用NPAPI支持 在未來通過 chrome://flags/#enable-npapi

從這裡你就是你自己。我對擴展編碼知之甚少。
這就是為什麼它是一個理論:)


27
2018-01-09 20:10



我喜歡它的獨創性。唯一的缺點是我需要為每個想要運行擴展的Windows機器註冊dll,但這並不是一次性的工作。 - growse
為什麼不編輯一次文件並將每個FTP,USB Stick,Dropbox等整個擴展文件夾複製到每台PC和筆記本電腦上?這個問題還有2台筆記本電腦和2台電腦嗎? .DLL是一個您必須複製到該擴展文件夾的文件。之後你必須編輯2個文件。這在理論上是這樣的。 - nixda
好吧,谷歌決定 刪除NPAPI支持 對於未來的版本。 - nixda
這不是一個好方法 - 它會阻止更新,或者在擴展獲得更新時刪除DLL。 - Izzy
建議將擴展的副本安裝為本地擴展的答案是一個更好的解決方案。 - dossy


可能這不是你想要的,但你可以試試這個。打開 設置 Chrome中的菜單,單擊右上角的三線/扳手圖標。現在打開 高級同步設置.. 

enter image description here 

enter image description here

現在選擇選項 選擇要同步的內容 然後取消標記 擴展 選項。現在,您的擴展程序將無法與其他PC同步。


75
2018-01-09 15:59



必須在多個實例中手動保持19個擴展同步,僅僅因為我不想在多個實例之間同步單個擴展似乎是一個不好的交易。 - growse
就如我所告訴你的 這不是你想要的和AFAIK還沒有單一擴展的解決方案。如果有人知道會來幫助你。如果有可能,我也很想看到它。手動同步擴展程序的最佳方法是創建一個帶書籤的文件夾,然後將您喜愛的擴展程序的書籤放入其中。 - avirk
當您只安裝了幾個擴展時,這絕對是一個比所有其他提議的黑客更友好的解決方案。 - jturcotte
從我的角度來看,將dll複製到新文件夾中的效果並不理想,但更好。 +1 - stevemidgley
好主意,如果你需要同步擴展,你可以暫時啟用它,然後重新禁用擴展一次,而不是 一切  單  時間。 - Jamie Pate


您可以將所需的擴展名安裝為本地擴展。

  1. 找到所需擴展的ID chrome://extensions 同 開發者模式已啟用

  2. 導航到您的Google安裝目錄。 Windows: %localappdata%\Google\Chrome\User Data\Default\Extensions\{} EXTENSION_ID\{} VERSION_NUMBER

  3. 保存在某個地方..用戶目錄可能?

  4. 還給 chrome://extensions 同 開發者模式已啟用 並按 Load unpacked extension。然後導航到擴展程序的新副本。

  5. 你現在應該看到你有兩次延期了.. 禁用 真實的。

我說 禁用 因為這種方法有一個不好的方面,那就是你失去了自動更新,每次更新時你都需要反復重复上述步驟。

如果您不確定哪個是真實副本和新副本,請查看ID標記下的內容 加載自:{Path_To_Your_Copy}


46
2017-09-14 02:41



到目前為止最好的答案。 - FreeAsInBeer
比頂級答案簡單得多......這顯然非常有用 - mardlin
嗯,如果我在開發者模式下安裝擴展,我 總是得到一個彈出窗口 在啟動時要求我禁用此擴展 - nixda
嗯,一定是谷歌已經添加到chrome stable的東西。 - WORMSS


對我而言,有一件事是每次Chrome開始使用Chrome任務管理器時手動刪除插件的流程。這可以通過以下方式實現:

  • (在Mac上)菜單>更多工具>任務管理器
  • (在PC上)右鍵單擊菜單欄>任務管理器或 轉移 + 退出

然後只需單擊您不想運行的擴展,然後單擊“結束進程”。

在工作中,我有兩台計算機,我不希望谷歌環聊突然出現。唯一不好的是每次啟動chrome時都必須這樣做。


7
2017-09-28 16:35



我發現這個解決方案比其他人更痛苦......但它仍然是一個解決方案 - konzo


這不是一個堅定的答案,而是另一個檢查問題的前景。

Chrome同步系統不允許以任何方式通過一台機器自定義評級;任何帶有額外擴展的解決方案都可以使用標誌來運行 disable/enable 在你的延伸中,將會失敗!

因為同時使用相同用戶帳戶的另一台機器將反映出這一變化。

避免這種信息交換的一種方法是他提出的建議 @avirk 禁用擴展同步,但似乎此解決方案不適合您的環境。

然後我將提出另外兩個可以採用的想法來獲得所需的結果:

  • 創建第二個帳戶將允許您自定義您自己的擴展組(我個人使用此解決方案在不同的計算機上具有不同的ScriptSafe配置文件)

另一個提案有點不那麼傳統,也可能   考慮到了 糟糕的黑客,但我會以各種方式描述它,所以   你有更廣泛的選擇。

  • 導航到相關插件的文件夾: .config/google-chrome/Default/Extensions/jpkfjicglakibpenojifdiepckckakgk/versionfolder 並將內容清除到文件“background_page.html”
    “此示例僅適用於插件:Gestures for Chrome(TM)”

這會在加載頁面時生成異常,這將不允許擴展中的事件代碼正確運行。 因此,我們將對此擴展程序進行本地禁用。

請記住,只要您收到擴展程序的新更新,就可以了   必須在新版本文件夾中重做此操作。


4
2018-01-13 05:49



我來這裡編輯我的帖子,你已經發布了我的另一個解決方案,很容易創建另一個帳戶/配置文件來使用Chrome :) - avirk
這對我來說實際上非常方便,因為在我的特定情況下,我的擴展程序僅在我的Chromebook上被破壞,所以必須在那裡禁用,但我想測試一個新版本,當它出來看看是否它有同樣的錯誤。 - Curt J. Sampson
第二個選項聽起來像是最好的解決方案,因為它只會禁用單個計算機的單個不需要的擴展,這正是海報所要求的。 - Dan Jones


這是一個相當古老的問題,但仍然是困擾我的事情。所以這是我自己的兩分錢。

您可以使用另一個擴展程序來執行此操作。我自己一直在這兩個插件之間切換: “擴展管理器(又名Switcher)

方便的擴展,應用程序和主題管理器。   輕鬆彈出管理器可以快速輕鬆地啟用,禁用,卸載擴展,應用程序。

要么 ”SimpleExtManager

一個簡單的菜單,用於啟用,禁用和訪問擴展選項。   “簡單”系列的另一個補充。這次是它的延伸   經理。

功能包括:

  • 通過彈出窗口啟用/禁用,訪問選項和卸載擴展的基本功能
  • 自定義彈出窗口
  • 能夠創建擴展組
  • 通過彈出和右鍵單擊菜單啟用/禁用擴展組
  • 事件頁面已啟用

我喜歡這兩個擴展,但還沒有達到我能說出我最喜歡哪一個的地步。它們都經歷了很多開發並經常更新。


4
2017-07-18 16:11



請引用參考鏈接中答案的基本部分,因為如果鏈接頁面發生變化,答案可能無效。 - DavidPostill♦
我不知道從插件頁面引用什麼,因為它們是擴展建議而不是真正的答案,但我希望我的編輯沒問題。 - Squazz
只是為了檢查..這些擴展都不允許你在每台機器上控制擴展,對吧?他們只是加快了在一台機器上不斷關閉延長線的過程,當你在另一台機器上時再次重新開啟? - apraetor
Excatly @apraetor完全選擇安裝哪些功能的功能專門用於Chrome瀏覽器,瀏覽器同步該數據 - Squazz


我發現的另一個解決方案是使用Chrome中包含的策略機制。 Google提供了通過組策略管理擴展的可能性。通過將不需要的擴展名放在黑名單上,我們有效地刪除了該PC的同步。我們可以通過手動設置這些選項來利用這些知識。

以下是Windows PC的簡短說明:

  1. 打開註冊表編輯器(註冊表)
  2. 導航到HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome - 如果它不存在則創建它
  3. 創建一個名為“ExtensionInstallBlacklist”的新密鑰
  4. 添加一個新值(REG_SZ)並將其命名為“1” - 如果已存在,則將其命名為“2”,依此類推
  5. 將此值的數據設置為要刪除的擴展的ID

通過這樣做,下次啟動Chrome時將刪除擴展程序。這只會影響您所使用的PC。我通過乾淨安裝Chrome來檢查這一點。登錄後,所有擴展程序都被加載 - 特別是我們放在另一台PC上的黑名單中。

可以在此處找到此策略設置的文檔,還顯示了不同操作系統的設置:

http://dev.chromium.org/administrators/policy-list-3#ExtensionInstallBlacklist


3
2018-05-28 12:07