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
Open Registry Editor
Press Win + R, type regedit, and hit Enter.
Navigate to One of These Paths:
Scope | Registry Path |
All users | HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallForcelist |
Current user | HKEY_CURRENT_USER\Software\Policies\Google\Chrome\ExtensionInstallForcelist |
Add a New String Value:
Name:
1
(or any number)Value:
<EXTENSION_ID>;
https://clients2.google.com/service/update2/crx
Example:
gogbiohkminacikoppmljeolgccpmlop;https://clients2.google.com/service/update2/crx
Restart Chrome
Visit chrome://policy and click "Reload policies".
macOS — Use a Managed Preferences .plist
Step-by-Step
Open Terminal and run:
Bash
sudo mkdir -p "/Library/Managed Preferences" sudo nano "/Library/Managed Preferences/com.google.Chrome.plist"
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>
Save and Exit:
Ctrl + O
→Enter
Ctrl + X
→Exit
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:
Open
regedit
.Delete the string from:
HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallForcelist
macOS:
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
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.
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
