如何禁用Chrome扩展程序而不在多个同步设备上禁用它们


132

我在4个不同的工作站上使用Chrome,并且所有扩展程序都已同步。

我的问题是,如果您有实际的鼠标,则其中一个扩展(Chrome的Gestures)可以很好地工作,但是在Ubuntu的触控板上,它会遇到麻烦。

如果我在Ubuntu计算机上将其禁用,则由于其内部同步机制,它在所有Chrome安装中均被禁用。

问:是否可以仅在一台计算机上选择性地禁用扩展?


4
点击Chrome设置下拉菜单->高级设置->高级同步设置->选择要同步的内容->取消选中同步扩展程序->确定。然后在每个设备上适当地设置扩展名。为我工作的Chrome版本41
埃里克Leschinski

我知道这个问题很老,我遇到了类似的问题,但是我只想禁用一台机器上的所有扩展,但仍然让Chrome记住我的凭据,使用辅助gmail帐户
Pierre

Answers:


28

基于安全方面的考虑,Chrome浏览器不会同步包含NPAPI插件的任何扩展程序。

资源

什么是NPAPI插件?

在NPAPI插件中运行的代码具有当前用户的全部权限,并且不会以任何方式沙盒化或屏蔽Google Chrome的恶意输入。在处理来自不受信任来源的输入时,例如在使用内容脚本或XMLHttpRequest时,您应该特别谨慎。

资源

理论

如果我们以Chrome使用NPAPI识别扩展名的方式修改了扩展名,则应该没问题。

如何

  1. 首先,您需要来自任何NPAPI扩展名(Screen Capture(由Google))的虚拟.dll 。由于Google决定放弃NPAPI支持,因此该扩展程序已从Google Play商店中删除。但这对我们的情况无关紧要。幸运的是,官方的Screen Capture Wiki仍包含源代码。我们不需要完整的扩展名,仅需要NPAPI .dll即可screen_capture.dll直接下载

  2. 其次,转到不应同步的扩展文件夹。就您而言,适用于Chrome的手势
    ..\profile\Default\Extensions\jpkfjicglakibpenojifdiepckckakgk\1.12.1_0

  3. 修改manifest.json文件,并按Stackoverflow所述添加NPAPI插件,甚至最好在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

从这里开始,您自己一个人。我对扩展编码还不了解。
这就是为什么这是一个理论:)


1
我喜欢它的独创性。唯一的缺点是,我需要为要在其上运行该扩展程序的每台Windows计算机注册dll,但这并不是一件一件容易的事。
13年

1
为什么不一次编辑文件,而是将每个FTP,USB记忆棒,Dropbox或其他文件的整个扩展文件夹复制到每台PC和笔记本电脑上?问题中是否有超过2台笔记本电脑和2台PC?.DLL是一个文件,您必须将其复制到该扩展文件夹中。之后,您必须编辑2个文件。理论上就是这样。
nixda

3
好吧,Google已决定放弃对未来版本的NPAPI支持
nixda

2
这不是一个好办法-它要么块更新或在内线得到一个更新的DLL被删除..
的Izzy

1
示例ddl的网址已损坏
Ferrybig

79

可能这不是您想要的,但是您可以尝试一下。通过单击右上角的三行/扳手图标,在Chrome中打开设置菜单。现在打开高级同步设置。

在此处输入图片说明

在此处输入图片说明

现在选择选项,选择要同步的内容,然后取消标记扩展选项。现在,您的扩展程序将不会与其他PC同步。


53
必须手动在多个实例之间保持19个扩展同步,只是因为我不想在多个实例之间同步单个扩展似乎有点不好。
13年

5
正如我告诉您的那样,这不是您想要的,并且AFAIK尚无针对单个扩展的解决方案。如果有人知道会来帮助您。我也很好奇是否有可能。手动同步扩展的最佳方法是手动创建一个带有书签的文件夹,然后将自己喜欢的扩展的书签放入书签中。
2013年

6
当您只安装了几个扩展程序时,这绝对是比所有其他建议的hacks更用户友好的解决方案。
jturcotte 2014年

4
从我的角度来看,这并不理想,但是比将dll复制到新文件夹中要好得多。+1
stevemidgley 2014年

4
好主意,如果你需要同步扩展,你可以暂时启用它,然后重新禁用扩展一次,而不是 一个 时间
Jamie Pate

54

您可以将所需的扩展安装为本地扩展。

  1. 找到启用chrome://extensions开发人员模式的扩展所需的ID 。

  2. 导航到您的Google安装目录。Windows: %localappdata%\Google\Chrome\User Data\Default\Extensions\{Extension_ID} \{Version_Number}

  3. 将其保存在某处。

  4. 返回启用chrome://extensions开发人员模式的状态,然后按Load unpacked extension。并导航到扩展名的新副本。

  5. 您应该看到您的扩展现在的两倍.. 禁用真正的一个。

我之所以说“ 禁用”,是因为这种方法有一个不好的方面,那就是您会丢失自动更新,并且每次更新时都需要一遍又一遍地重复上述步骤。

如果您不确定哪个是真实副本和新副本,请在ID标记下查找Loaded from:{Path_To_Your_Copy}


2
迄今为止最好的答案。
FreeAsInBeer 2014年

2
比最简单的答案简单得多...这显然是非常有用的
mardlin 2014年

1
恩,如果我在开发人员模式下安装扩展程序,则总是在启动时出现弹出窗口,要求我禁用此扩展程序
nixda 2015年

嗯,一定是Google在Chrome稳定器中添加的东西。
2015年

7

对我有用的一件事是,每当Chrome开始使用Chrome Task Manager时,手动终止该插件的过程。这可以通过以下方式实现:

  • (在Mac上)菜单>更多工具>任务管理器
  • (在PC上)右键单击菜单栏>任务管理器或Shift+Esc

然后,只需单击您不想运行的扩展,然后单击“结束进程”。

在工作中,我有两台计算机,但我不想在两者上都弹出Google环聊。唯一的坏事是每次启动chrome时都必须这样做。


1
我发现此解决方案比其他解决方案更痛苦……但它仍然是一种解决方案
konzo

5

这不是一个绝对的答案,而是另一个研究该问题的前途。

Chrome同步系统不允许以任何方式通过一台计算机自定义评级;而且任何带有额外扩展名且disable/enable在您的扩展范围内运行的解决方案都将失败!

因为同时使用同一用户帐户的另一台计算机将反映更改。

避免这种信息交换的一种方法是,他建议@avirk禁用扩展扩展同步的程度如何,但是看来此解决方案不适合您的环境。

然后,我将提出另外两个想法,可以采用这些想法来获得所需的结果:

  • 创建第二个帐户将允许您自定义扩展组(我个人使用此解决方案是为了在不同的计算机上具有不同的ScriptSafe配置文件)

另一个建议不太常规,可以认为是一个不错的技巧,但是我将以各种方式对其进行描述,以便您有更广泛的选择。

  • 导航到相关插件的文件夹: .config/google-chrome/Default/Extensions/jpkfjicglakibpenojifdiepckckakgk/versionfolder 并将内容清除到文件“ background_page.html”中
    “此示例只能应用于插件:Gestures for Chrome(TM)”

这将在加载页面时生成异常,这将导致扩展程序中的事件代码无法正确运行。 因此,我们将对此扩展禁用本地功能。

请记住,每当您收到扩展的新更新时,都必须在新版本文件夹中重做此操作。


1
我来这里是为了编辑我的帖子,而您已经发布了我的另一个解决方案,该解决方案很容易创建另一个使用Chrome的帐户/个人资料:)
avirk 2013年

这实际上对我来说非常方便,因为在我的特定情况下,我有一个仅在我的Chromebook上损坏的扩展程序,因此必须在其中禁用它,但是我想测试一个新版本,以查看是否它具有相同的错误。
Curt J. Sampson

第二个选项听起来是最好的解决方案,因为它仅禁用了单台计算机的单个不需要的扩展名,这正是发布者所要求的。
丹·琼斯

5

我发现的另一个解决方案是使用Chrome中包含的策略机制。Google提供了通过组策略管理扩展的可能性。通过将不需要的扩展名列入黑名单,我们已有效删除了此PC的同步。我们可以通过手动设置这些选项来利用这些知识。

这是Windows PC的简短说明:

  1. 打开您的注册表编辑器(regedit)
  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


这个答案为我指明了正确的方向。在linux上,创建文件/etc/opt/chrome/policies/managed/policies.json,并添加以下内容:{ "ExtensionSettings": { "PUT EXTENSION ID HERE": { "installation_mode": "blocked" } }
sherbang

4

这是一个相当老的问题,但仍然困扰着我。这是我自己的两分钱。

您可能可以使用另一个扩展名来执行此操作。我本人一直在这两个插件之间切换:“ Extensions Manager(aka Switcher)

方便的扩展程序,应用程序和主题管理器。轻型弹出管理器可快速,轻松地启用,禁用,卸载扩展程序,应用程序。

或“ SimpleExtManager

一个简单的菜单,用于启用,禁用和访问扩展选项。“简单”系列的另一个补充。这次是扩展经理。

功能包括:

  • 基本功能,通过弹出窗口启用/禁用,访问选项和卸载扩展
  • 自定义弹出窗口
  • 创建扩展组的能力
  • 通过弹出菜单和右键菜单启用/禁用扩展组
  • 活动页面已启用

我喜欢这两个扩展,但还没到可以说出我最喜欢哪个扩展的地步。他们两个都经过大量的开发并且经常更新。


2
请在参考链接中引用答案的关键部分,因为如果链接页面发生更改,答案可能会失效。
DavidPostill

1
我不知道在插件页面上要引用什么,因为它们是扩展建议,并不是真正的答案,但我希望我的编辑可以。
Squazz

1
只是为了检查..这些扩展都不能让您基于计算机控制扩展,对吗?他们只是加快了在一台机器上不断关闭扩展名而在另一台机器上又重新打开扩展名的过程?
apraetor

完全@apraetor可以完全选择要安装哪些功能,这是Chrome浏览器专用的功能,浏览器可以同步数据
Squazz

3

这是一个简单的解决方案(考虑到您有19个扩展名,并且只遇到一个或两个问题):在每台计算机上首次安装后:

  1. 允许Google Chrome浏览器执行初始同步。
  2. 安装后,转到设置并禁用扩展同步。
  3. 删除所需的扩展名。

这基本上将所有扩展名保留在您的用户中,您可以为每台单独的计算机手动编辑它们。

尽管我不得不承认以前的答案更有趣,但这可以解决您的问题,而无需太多技术知识。

干杯!


1

我打算评论Harry_Pootha的出色回答,这对我很有帮助,但是我在这里不太活跃:)

因此,存在另一种方法,该方法不依赖于通过Regedit导航注册表。

https://support.google.com/chrome/a/answer/187202?hl=zh_CN上,他们提供了有关如何将各种管理政策(包括黑名单政策)应用于Chrome的逐步指南。

要查看Chrome策略的完整列表,请查看策略模板 zip文件(所有受支持的语言均提供)中的common /文件夹。

对于Windows,最重要的2个步骤是:

步骤1:下载Chrome政策模板

可在以下位置找到Windows模板以及所有操作系统的通用策略文档:

Google Chrome模板和文档的Zip文件。

步骤2:打开您下载的ADM或ADMX模板

  • 导航到“开始”>“运行”:gpedit.msc。(或在终端中运行gpedit.msc)
  • 导航到本地计算机策略>计算机配置>管理模板。
  • 右键单击“管理模板”,然后选择“添加/删除模板”。
  • 通过对话框添加chrome.adm模板。
  • 完成后,如果Google / Google Chrome文件夹尚未存在,它将显示在管理模板下。如果您在Windows 7或10上添加了ADM模板,它将显示在“经典管理模板” /“ Google” /“ Google Chrome”下。

对于Linux和Mac,Google的页面上链接了其他指南,因此最好从那里继续进行。

最后一步是实际启用策略并指定其内容。我发现最好的方法是转到chrome://policy/一个新选项卡,然后勾选“显示未设置值的策略”;这将显示可以使用组策略编辑器设置的所有可用策略,并且每个策略都链接到其文档。

请注意,在GP编辑器中,您要查找的策略使用上述文档中的长名称。因此,将“配置扩展安装黑名单”设置Enabled,在策略设置GUI中单击Show,然后在其中添加所需的ID。

您可以转到chrome://extensions/右上角的“开发人员模式”并在其上打勾,从而轻松找到扩展程序ID 。

再次感谢Harry_Pootha的回答,帮助我找到了所有这些内容并加以使用。


0

很有可能是一个方便的扩展程序,它列出了已安装的扩展程序(https://github.com/rbrahul/chrome-extension-manager),并允许您选择要禁用的扩展程序并将该列表保留在浏览器存储中将起作用。是的,它将全局禁用,但是在另一个位置,同一扩展名将使用不同的列表,因此启用了不同的扩展名。

好吧,如果您同时在另一台计算机上使用chrome(例如,您的桌上有Mac,笔记本电脑,台式机,也许正在运行某些虚拟机),那可能是一团糟...

也许可以禁用禁用进程,但是我不确定是否可以通过编程来执行。


请阅读“ 如何推荐软件”以获取最少的必需信息,以及有关如何在“超级用户”上推荐软件的其他建议。为了使您的答案即使在包含的链接中断的情况下也有用,请在您的答案中编辑这些详细信息。
Twisty模仿者,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.