Our Story

Who we are and how we solve complex IT challenges.

Our Certifications

Microsoft certifications and partnerships validating our technical expertise.

Leadership

Meet the Experienced Leadership Team Driving WME’s Success

Advisory Updates

Expert guidance on Microsoft, security, and compliance developments.

Case Studies

Real-world outcomes from complex Microsoft-focused IT engagements.

Financial Industry

Secure technology solutions for regulated banks and financial institutions.

Healthcare

Secure Microsoft solutions for compliant, connected, and modern healthcare organizations.

Manufacturing

Cloud and security solutions supporting modern manufacturing operations.

Non-Profit

Cost-efficient Microsoft solutions for mission-driven organizations.

Public Sector

Microsoft-based IT services for secure public sector modernization.

High Tech

Scalable cloud, security, and staffing for fast-growing technology companies.

SMBs

Scalable cloud, security, and staffing for fast-growing technology companies.

Cloud Migration Services

Transition your workloads to the cloud securely for greater scalability and performance.

Data Migration Services

Securely transfer your business data with minimal downtime and maximum integrity.

Application Migration Services

Move your applications seamlessly to modern platforms with minimal business disruption.

Identity & Security Migration Services

Strengthen identity management and security while transitioning to modern Microsoft solutions.

IT Staffing

Connect with skilled IT professionals to strengthen your team and accelerate project delivery.

Accounting & Finance

Connect with experienced accounting and finance professionals to support your business goals.

Licensing Support

Discover the benefits of both CSP and On-premises licensing options and find the best fit for your unique business needs. From cost savings to flexibility, we’ve got you covered.

Power Platform

Unlock the full potential of the Microsoft Power Platform Suite to streamline operations, automate repetitive tasks, and gain real-time insights that drive business growth.

Sharepoint Solutions

Supercharge your business productivity and enhance visibility through our proven SharePoint expertise.

Security Solutions

Protect your business with proactive cybersecurity, compliance, and risk management solutions.

Endpoint Management

Secure, manage, and monitor every device with modern endpoint management solutions.

Disabling Extensions for Chrome/Firefox Browsers using MECM

January 13, 2023

Introduction

One requirement that I have started to see more and more is the controlling of the use of extensions within web browsers due to various exploits which can be exposed when using this, and though you can have some form of control using GPOs or even creating policies within Intune, sometimes the policies can be more around stopping users from installing extensions rather than actually stopping them altogether. Google Chrome and Firefox are popular browsers in which a lot of clients use which require this. We will look into how we achieve this from using this within MECM and Intune. Managing browser controls across different tools and policies can quickly become fragmented, which is why many organizations choose to modernize to Microsoft 365, where endpoint security and application controls are centrally enforced through Intune and unified policy management.

PowerShell Script for Disabling Extensions

I have developed a PowerShell script which can achieve this, will show these in two parts to represent each browser.

Now both scripts are pretty much the same, they will create the shortcuts within the Start Menu and also on the desktops with the correct switch which will disable the extensions for either browser.

The one line which does require some further explanation is the $Parent = Get-ChildItem “C:\Users” -Directory -Exclude “Public” line.

This line basically excludes the Public User profile, because the script itself creates the shortcut on all profiles so this change is active for all users. And if a shortcut is created in the Public user profile as well, then you will end up with two shortcuts so to clean this up this line has been placed.

Google Chrome

Below is the PowerShell script which makes the changes to the shortcut for both the desktop and the start menu.

$Destination = “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk”
$Shell = New-Object -Com WScript.shell
$Shortcut = $Shell.CreateShortcut($Destination)
$Shortcut.TargetPath = “C:\Program Files\Google\Chrome\Application\chrome.exe”
$Shortcut.Arguments = “–disable-extensions”
$Shortcut.Save()

Remove-Item “C:\users\*\Desktop\Google Chrome.lnk”
$Parent = Get-ChildItem “C:\Users” -Directory -Exclude “Public”
foreach($user in $Parent){
$Destination = “$($user.fullname)\Desktop\Google Chrome.lnk”
Copy-Item “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk” $Destination
}

Once updated you should then see the shortcut details.

When users access Google Chrome and trying to look at extensions they should see it greyed out.

Mozilla Firefox

Below is the PowerShell script which makes the changes to the shortcut for both the desktop and the start menu.

$Destination = “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Firefox.lnk”
$Shell = New-Object -Com WScript.shell
$Shortcut = $Shell.CreateShortcut($Destination)
$Shortcut.TargetPath = “C:\Program Files\Mozilla Firefox\firefox.exe”
$Shortcut.Arguments = “–safe-mode”
$Shortcut.Save()

Remove-Item “C:\users\*\Desktop\firefox.lnk”
$Parent = Get-ChildItem “C:\Users” -Directory -Exclude “Public”
foreach($user in $Parent){
$Destination = “$($user.fullname)\Desktop\Firefox.lnk”
Copy-Item “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Firefox.lnk” $Destination
}

Once updated you should then see the shortcut details.

When users access Mozilla Firefox and trying to look at extensions they should see it greyed out.

Configuration in MECM via Configuration Baselines

One method you can use is to create a configuration baseline which can be applied to a collection so that on a regular interval the browsers can be checked to see if the extensions have been disabled.

Compliance Scripts

The compliance scripts are what will be used to check to see that the extensions disabling switch is present. Below are the scripts for both browsers.

Google Chrome

$Shell = New-Object -Com WScript.shell
$ShortcutCheck = $Shell.CreateShortcut(“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk”)
If ($ShortcutCheck.Arguments -eq “–disable-extensions”)
{
Write-Host “Compliant”
}
else
{
Write-Host “Not Compliant”
}

Mozilla Firefox

$Shell = New-Object -Com WScript.shell
$ShortcutCheck = $Shell.CreateShortcut(“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Firefox.lnk”)
If ($ShortcutCheck.Arguments -eq “–safe-mode”)
{
Write-Host “Compliant”
}
else
{
Write-Host “Not Compliant”
}

Create Configuration Baseline

To create the configuration baseline please perform the following for each browser;

  1. Open the Microsoft Endpoint Configuration Manager Console
  2. Go to Assets and Compliance
  3. Go to Compliance Settings – Configuration Items
  4. Right Click and select Create Configuration Item
  5. General: Specify general information about this configuration item – Give a name for your configuration item then click next
  6. Supported Platforms: Specify the client operating systems that will assess this configuration item for compliance – Click next
  7. Settings: Specify settings for this operating system – Click New
  8. Create Setting: General – Give a name for the setting, Change Setting Type to script and Data Type to string. Click the Add Script button under discovery script and copy and paste the Compliance Script then click OK. Click Add Script under the Remediation Script section and copy and paste the PowerShell Extension Disabling script at the top of this article then click OK
  9. Create Settings: Compliance Rules – Click New. Give a name then change the Rule Type to Value and enter into the For the Value field as “Compliant”. Click OK
  10. Compliance Rules: Specify compliance rules for this operating system – Click Next
  11. Summary: The wizard will create an operating system configuration item with the following settings – Click next to complete
  12. Go to Compliance Settings – Configuration Baseline
  13. Right Click and select Create Configuration Baseline
  14. Create Configuration Baseline: Specify general information about this configuration baseline – Give a name then click the Add button and select Configuration Items
  15. Add Configuration Items: Select the configuration items that you want to add to this configuration baseline – Add the Configuration Item that you just created then click OK
  16. Click OK to create the Configuration Baseline

Now you can then deploy the configuration baseline to the collection

Configuration in Intune via Proactive Remediation Scripts

Another way is deploy the same PowerShell scripts but to do it via Intune as a Proactive Remediation Scripts which work very similar to how configuration baselines work in MECM.

Detection Scripts

Below are the detection scripts for your Proactive Remediation Scripts which check if the disable extensions switch is present.

Google Chrome

$Shell = New-Object -Com WScript.shell
$ShortcutCheck = $Shell.CreateShortcut(“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk”)
If ($ShortcutCheck.Arguments -eq “–disable-extensions”)
{
Write-Host “Compliant”
Exit 0
}
else
{
Write-Host “Not Compliant”
Exit 1
}

Mozilla Firefox

$Shell = New-Object -Com WScript.shell
$ShortcutCheck = $Shell.CreateShortcut(“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Firefox.lnk”)
If ($ShortcutCheck.Arguments -eq “–safe-mode”)
{
Write-Host “Compliant”
Exit 0
}
else
{
Write-Host “Not Compliant”
Exit 1
}

Create Proactive Remediation Script Package

To create the Proactive Remediation Script Package please perform the following for each browser;

  1. Open Endpoint Manager
  2. Go to Reports – Endpoint Analytics
  3. Select Proactive Remediation Scripts
  4. Click Create Script Package
  5. Create Custom Script: Basics – Enter a name and click next
  6. Create Custom Script: Settings – For the Detection script file click the folder button and browse to the PowerShell script which contains the detection script above then click OK. Then click the Remediation script file and browse to the PowerShell Script which contains the disabling extension script above then click OK. Then click next
  7. Create Custom Script: Scope Tags – Click Next
  8. Create Custom Script: Assignments – Select the group you wish to deploy to
  9. Create Custom Script: Review + Create – Click Create

Share:

Facebook
Twitter
LinkedIn

Get Microsoft Updates Before They Cost You Downtime

Retirement dates, licensing changes, and security updates from a Microsoft-exclusive team, sent when they matter, not on a filler schedule.

More Posts

Copilot Cowork: Credit-Based Billing

Until now, Copilot Cowork has been included with M365 Copilot Premium licenses. Now that Cowork has moved out of public preview, Cowork is introducing a ...
Read Full Article
SharePoint OTP Retirement Is Coming in July 2026

SharePoint OTP Retirement Is Coming in July 2026 — What IT Admins Need to Do Before Access Breaks

Starting July 2026, external users who access OneDrive and SharePoint files through legacy SPO OTP links will start receiving access denied — silently, with no ...
Read Full Article
Power Virtual Agents Is Gone. Here's What Replaced It and Why It Matters.

Power Virtual Agents Is Gone. Here’s What Replaced It and Why It Matters.

If someone on your team still calls it “Power Virtual Agents,” they’re working from an outdated map. Microsoft retired the product on November 15, 2023 ...
Read Full Article

Get Microsoft Updates Before They Cost You Downtime

Retirement dates, licensing changes, and security updates from a Microsoft-exclusive team, sent when they matter, not on a filler schedule.
Subscription Form email