Skip to content
InvardiaInvardia
Why InvardiaProductsFeaturesPricingCommunity
Docs
All documentation
Product documentationPIM ManagerSecurityInsight
SettingsPIM Manager settingsSecurityInsight settingsEntra Policy Suite settings
ScriptsPIM Manager scriptsSecurityInsight scriptsEntra Policy Suite scriptsInvardia scripts
Error codesPIM Manager error codesSecurityInsight error codes
API and MCPPIM Manager APIPIM Manager MCP toolsSecurityInsight APISecurityInsight MCP tools
SecurityPIM Manager security packSecurityInsight security packEntra Policy Suite security pack
Network and designPIM Manager network guidesPIM Manager command wizardNetwork egressDesign your installationCalculate your cost
SupportSetup scriptsRemote support access
Search the docs
SupportAboutContactBook a demoCustomer portalDesign your installationFree Pro trial

PIM Manager scripts

Deploy-PimActivatorClient

PIM Activator: install the extension on a machine without Intune

Purpose

Installs the PIM Activator browser extension on this machine (Edge, Chrome or both) through local Chromium enterprise policy in the registry -- force-install, install source, extension settings and the tenant catalog -- for servers and machines without Intune; -Uninstall removes only what it wrote.

When to run it

On a server or a machine that is not managed by Intune, once (PIM Manager > Operations > PIM Activator > Servers shows the command with your tenant and app). Re-run to change the settings; -Uninstall to remove them.

Who may run it

KindRoleScopeWhy
otherLocal Administrator (elevated PowerShell)this machine; only for -Scope Machine (HKLM, the default)machine policy lives under HKLM. -Scope User (HKCU, the current user only) needs no elevation.
otherDelegated sign-in: Organization.Read.All, Application.Read.All (read only)Microsoft Graph, for the first-party app Microsoft Graph Command Line ToolsONLY when neither -TenantId + -ClientId nor -CatalogJsonPath is given: the tenant and the PIM Activator app are looked up live. The command PIM Manager shows passes both, so it signs in to nothing.

What it changes

WhereActionWhatPermission / roleScopeWhyUndo
this machine's registryupdate<HKLM or HKCU>\SOFTWARE\Policies\Microsoft\Edge and \Google\Chrome \ExtensionInstallForcelist: one row '<extension id>;<update URL>' in the slot already holding our id, else the lowest free slot; other rows carrying our id are removedthe browser installs and keeps the extension updatedDeploy-PimActivatorClient.ps1 -Uninstall (removes only our rows)
this machine's registryupdate...\ExtensionInstallSources: one row with the update host pattern (https://<host>/*)allows the install where a hardened baseline restricts install sources-Uninstall (kept while another forcelist row still installs from that host)
this machine's registryupdate...\ExtensionSettings: our entry (force_installed, runtime_allowed_hosts) merged into the organisation's dictionary -- their entries are keptan extension update can never be silently disabled as a permission expansion-Uninstall (takes only our id out)
this machine's registryupdate...\ExtensionInstallAllowlist: one row with our id -- only with -WriteAllowlistfor environments that block every extension ('*' blocklist)-Uninstall
this machine's registrycreate...\3rdparty\extensions\<extension id>\policy\tenantCatalog (tenant name, tenant id, app client id, activation defaults; plus -AdditionalTenantsJson tenants)the extension's 'Use centrally deployed' setup reads it-Uninstall (removes the whole 3rdparty\extensions\<extension id> key)
this machine's registryupdate...\3rdparty\extensions\<id>\policy\autoActivateMaxGroups (DWORD) for BOTH PIM Activator extensions (production and test) -- only with -AutoActivateMaxGroups (-1 removes it)per-device cap on auto-activation, the same for production and test (as the Intune Remediation writes it)re-run with -AutoActivateMaxGroups -1
this machine's registryupdate...\3rdparty\extensions\<id>\policy\bulkActivateConfirmThreshold (DWORD) for BOTH PIM Activator extensions -- only with -BulkActivateConfirmThreshold (-1 removes it)per-device 'click again to confirm' threshold for bulk activation (as the Intune Remediation writes it)re-run with -BulkActivateConfirmThreshold -1
this machine's registryremovewith -Uninstall: our forcelist / allowlist / install-source rows, our ExtensionSettings entry and the 3rdparty\extensions\<extension id> key -- nothing of the organisation'sremoves the PIM Activator from this machine (the browser uninstalls it on its next start)run the install again

What it only reads

  • this machine's current Edge / Chrome extension policies (so the organisation's own rows and settings are kept)
  • only without -TenantId + -ClientId: the tenant (organization) and the PIM Activator app registration, by exact name or -ClientId

Parameters

ParameterRequiredDefaultWhat it does
-ScopenoMachineMachine (HKLM, every user, needs elevation) or User (HKCU, the current user only).
-BrowsernoBothEdge, Chrome or Both.
-ChannelnoReleasedReleased, or Test (the separate TEST extension id and update manifest).
-TenantIdnoWith -ClientId: the tenant catalog is written from these values (no sign-in).
-ClientIdnoApplication (client) id of the PIM Activator app registration. Without it the app is looked up by exact -AppDisplayName (sign-in).
-TenantNamenoPIMThe tenant name the users see in the extension.
-AdditionalTenantsJsonnoOptional: more tenants for the extension's tenant switcher (JSON array of name, tenantId, clientId).
-DefaultJustificationnoChange in infrastructureThe justification the extension pre-fills (overrides the catalog's).
-DefaultDurationHoursno8The activation length the extension pre-fills, 1-24 hours (overrides the catalog's).
-AutoActivateMaxGroupsnonot set (left alone)Per-device cap on auto-activation: 0 = off, N = at most N groups, -1 = remove the cap.
-BulkActivateConfirmThresholdnonot set (left alone)Per-device 'click again to confirm' threshold for bulk activation: 1-100, -1 = remove it. Both extensions.
-ActivationEndTimenonot set (left alone)Per-device end-of-day time 'HH:MM' (local time): every activation ends no later than this today; 'none' = remove it. Both extensions.
-PrefixnoWith -TenantId and -ClientId: list only groups whose names start with this text.
-EntraPrefixnoWith -TenantId and -ClientId: list only Entra roles whose names start with this text.
-AzurePrefixnoWith -TenantId and -ClientId: list only Azure roles whose names start with this text.
-CatalogJsonPathnoA tenant catalog JSON file to write instead of -TenantId/-ClientId or the live lookup.
-SkipTenantCatalognofalseWrite only the install policies, no tenant catalog.
-WriteAllowlistnofalseAlso write ExtensionInstallAllowlist (only where every extension is blocked).
-AppDisplayNamenoPIM ActivatorExact display name used to find the app when -ClientId is not given (must be unique).
-ExtensionIdnoeheocihmlppcophaeakmdenhgcookkabThe extension id; change it only for a fork.
-UpdateUrlnohttps://knudsenmorten.github.io/PIM4EntraPS/updates.xmlThe update manifest the browser installs and updates the extension from (self-hosting).
-UninstallnofalseRemove only what this script wrote for the extension id.

Preview with -WhatIf

Reads this machine's policies and prints every registry value it would set or remove (forcelist slot, install source, ExtensionSettings entry, tenant catalog, per-device limits). Nothing is written. A preview of -Scope Machine runs without elevation.

Undo

Deploy-PimActivatorClient.ps1 -Uninstall (same -Scope, -Browser and -Channel): removes only this script's rows, entries and keys; the browser removes the extension on its next start.

Network

It connects to: none when -TenantId and -ClientId are given (the command PIM Manager shows), login.microsoftonline.com, graph.microsoft.com -- only for the live lookup, knudsenmorten.github.io -- by the BROWSER afterwards, not by this script: the update manifest and the signed extension package (Chromium installs a package only when its signing key matches the extension id)

Download and run

Run these lines in PowerShell: the first downloads the script into the current folder, the second runs it.

Invoke-WebRequest https://invardia.com/support/pim/Deploy-PimActivatorClient.ps1 -OutFile Deploy-PimActivatorClient.ps1
.\Deploy-PimActivatorClient.ps1

To check the download first, compare its SHA-256 with the published one:

SHA-256 094dab2d43e03c05292b03efd63bfb2f13864be9eb0dc187c1d6f334f038b903

Checksums: SHA256SUMS.txt · Version 3.0.70

Before you run it, compare the file's SHA-256 with its line in SHA256SUMS.txt.

Every parameter: Get-Help .\Deploy-PimActivatorClient.ps1 -Full · Source: Deploy-PimActivatorClient.ps1

Every script, identity and permission for your security review: PIM Manager

InvardiaInvardia

See the risk. Control the access.

Products

PIM ManagerSecurityInsightEntra Policy SuiteAll featuresPricingFree 60-day Pro trialBook a demoWhy Invardia

Docs

DocumentationSearch the docsPIM Manager settingsSecurityInsight settingsPIM network guidesCommand wizardNetwork egressPIM Manager design configuratorSecurityInsight design configuratorDesign your installationCalculate your cost

Company

AboutContactCustomer portalSupportHow support worksHow updates reach youSupport in numbersSetup scriptsRemote support accessContact: info@invardia.com

Legal

Terms of saleLicence termsData processingPrivacyCookiesCompany information
© 2026 Invardia – a brand of 2LINKIT, founded and owned by Morten Knudsen · Strandvejen 21A, 6000 Kolding, Denmark · VAT DK39208032 · Contact: info@invardia.com