How to Make Chrome Extensions Unremovable on Windows and macOS Using Enterprise Policy


In controlled environments — like schools, businesses, parental supervision, or kiosk systems — administrators may want to enforce a Chrome extension so that it cannot be removed by the user. Google Chrome provides built-in enterprise features to support this via Windows Registry (on Windows) and Managed Preferences (on macOS).

This guide walks you through how to lock an extension to Chrome on both platforms using official enterprise mechanisms.

What Does “Unremovable” Mean?

When an extension is force-installed by policy:

  • It shows up as “Installed by enterprise policy” at chrome://extensions.

  • The "Remove" button is disabled.

  • Users cannot uninstall or disable it.

  • Policy is managed at the system level (admin only).

Windows — Use the Registry

Step-by-Step

  1. Open Registry Editor

    Press Win + R, type regedit, and hit Enter.

  2. Navigate to One of These Paths:

ScopeRegistry Path
All usersHKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallForcelist
Current userHKEY_CURRENT_USER\Software\Policies\Google\Chrome\ExtensionInstallForcelist
  1. Add a New String Value:

Example:

gogbiohkminacikoppmljeolgccpmlop;https://clients2.google.com/service/update2/crx

  1. Restart Chrome

    Visit chrome://policy and click "Reload policies".

macOS — Use a Managed Preferences .plist

Step-by-Step

  1. Open Terminal and run:

    Bash

     sudo mkdir -p "/Library/Managed Preferences"
     sudo nano "/Library/Managed Preferences/com.google.Chrome.plist"
    
  2. Paste the Following XML (replace extension ID):

    XML

     <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
      "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     <plist version="1.0">
     <dict>
         <key>ExtensionInstallForcelist</key>
         <array>
             <string>mcjjniagopehibibgdeifbdedcgmdndp;https://clients2.google.com/service/update2/crx</string>
         </array>
     </dict>
     </plist>
    
  3. Save and Exit:

    • Ctrl + OEnter

    • Ctrl + XExit

  4. Restart Chrome & Reload Policy:

    Visit chrome://policy and click "Reload policies".

How to Verify It's Working

Go to chrome://extensions. Your extension should appear with:

  • "Installed by enterprise policy"

  • No "Remove" button

Additionally, chrome://policy will show it under ExtensionInstallForcelist.

How to Remove the Lock (if needed)

Windows:

  1. Open regedit.

  2. Delete the string from: HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallForcelist

macOS:

  1. Run the following commands in Terminal: Bash

     sudo rm "/Library/Managed Preferences/com.google.Chrome.plist"
     rm -rf ~/Library/Application\ Support/Google/Chrome/Policy
     rm ~/Library/Application\ Support/Google/Chrome/Local\ State
    
  2. Then restart Chrome.

Important Notes: You must have administrator or root access to apply or remove these policies, and any extension you use must be hosted on the Chrome Web Store or supplied with a valid update.xml and .crx file; otherwise, Chrome will treat the extension as invalid—such as when the manifest is missing or the .crx is corrupted—and display a “Blocked by administrator” error.


0
Subscribe to my newsletter

Read articles from RAJAT KUMAR SINGH directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

RAJAT KUMAR SINGH
RAJAT KUMAR SINGH