Shared Script Library
GitHubLinkedInSponsor
  • Overview
  • Software
    • Installers
      • Bluebeam Revu
      • Browser Extension
      • Google Chrome
      • Microsoft Defender for Endpoint
      • Microsoft Office
      • Microsoft Teams
      • QuickBooks Desktop
    • Uninstallers
      • Browser Extension
  • Device Management
    • Backups
      • SQL Databases
      • Synology Active Backup
      • Windows Restore Point
    • Updates
      • Dell Command Update
      • Microsoft Office
      • Microsoft Store Applications
      • Windows Management Framework
      • Windows Updates
    • Misc
      • Reset Local Group Policy
Powered by GitBook
On this page
  • Overview
  • Script
  • Examples
  • Example 1
  • Parameters
  • Required Parameters

Was this helpful?

  1. Software
  2. Uninstallers

Browser Extension

PowerShell script to silently remove a browser extension by ID.

PreviousUninstallersNextBackups

Last updated 7 months ago

Was this helpful?

Overview

Dev Insight: This script was created in tandem with the .

This script removes a Microsoft Edge or Google Chrome extension for all user / browser profiles on a device.

Prerequisites: This script has no prerequisites.


Script

Note: This script will throw a warning if force install extension policies are detected. The associated registry entries created by those policies will be removed by the script but may be automatically recreated by group policy / Intune. The warning is intended to prompt the technician to check group policy / Intune.

Examples

Example 1

.\RemoveExt.ps1 -ID 'hokifickgkhplphjiodbggjmoafhignh' 

Parameters

Required Parameters

-ID

The ID of the browser extension to be removed.

This example removes the extension in Microsoft Edge for all users and browser profiles.

Microsoft Editor: Spelling & Grammar Checker
browser extension installation script
Alternative ways to distribute an extension - Microsoft Edge Developer documentationMicrosoftLearn
Logo
Use alternative installation methods  |  Chrome Extensions  |  Chrome for DevelopersChrome for Developers
Logo
https://github.com/wise-io/scripts/blob/main/scripts/RemoveExt.ps1
<#
  .SYNOPSIS
    Removes Chrome/Edge browser extension
  .DESCRIPTION
    Silently removes Chrome/Edge browser extension by ID
  .PARAMETER ID
    String parameter for browser extension ID to remove 
  .EXAMPLE
    ./RemoveExt.ps1 -ID 'ghbmnnjooekpmoecnnnilnnbdlolhkhi'
  .NOTES
    Author: Aaron Stevenson
#>

param(
  [ValidatePattern('^[a-z]{32}$')]
  [Parameter(Mandatory = $true)]
  [String]$ID
)

Write-Output "`nRemoving browser extension [$ID]..."

# Remove force installed extension policy entries
try {
  $ForcePolicies = @(
    'HKLM:\Software\Policies\Microsoft\Edge\ExtensionInstallForcelist',
    'HKLM:\Software\Policies\Google\Chrome\ExtensionInstallForcelist'
  ) | Resolve-Path -ErrorAction Ignore

  if ($ForcePolicies) {
    Write-Warning 'Force install extension policies detected'
    Write-Output "Removed extentions may be reinstalled automatically by group policy / Intune.`n"
    Write-Output 'Removing force install policies...'
    foreach ($Policy in $ForcePolicies.Path) {
      $ForceExt = (Get-ItemProperty -Path $Policy).psbase.members | Where-Object { $_.Value -like "$ID*" }
      if ($ForceExt) { Remove-ItemProperty -Path $Policy -Name $ForceExt.Name }
    }
  }
}
catch {
  Write-Warning 'Error encountered while removing force install extension policy entries.'
  Write-Warning $_
  exit 1
}

# Remove globally installed extension registry entries
try {
  $GlobalExts = @(
    "HKLM:\Software\Wow6432Node\Microsoft\Edge\Extensions\$ID",
    "HKLM:\Software\Microsoft\Edge\Extensions\$ID",
    "HKLM:\Software\Wow6432Node\Google\Chrome\Extensions\$ID",
    "HKLM:\Software\Google\Chrome\Extensions\$ID"
  ) | Resolve-Path -ErrorAction Ignore

  if ($GlobalExts) {
    foreach ($Ext in $GlobalExts.Path) {
      Write-Output 'Removing global install registry entires...'
      Remove-Item -Path $Ext -Force -Recurse
    }
  }
}
catch {
  Write-Warning 'Error encountered while removing global extension installation registry keys.'
  Write-Warning $_
  exit 1
}

# Remove associated browser profile extension directories
try {
  $UserExtDirs = @(
    "$env:SystemDrive\Users\*\AppData\Local\Microsoft\Edge\User Data\*\Extensions\$ID",
    "$env:SystemDrive\Users\*\AppData\Local\Google\Chrome\User Data\*\Extensions\$ID"
  ) | Resolve-Path -ErrorAction Ignore

  if ($UserExtDirs) { 
    foreach ($Dir in $UserExtDirs.Path) {
      Write-Output "Removing [$Dir]..."
      Remove-Item -Path $Dir -Force -Recurse
    }
  }
}
catch {
  Write-Warning 'Error encountered while removing browser profile extension directories.'
  Write-Warning $_
  exit 1
}