agentkeeper-managed-config.ps1
Deploy the AgentKeeper browser extension to Windows devices managed by Microsoft Intune. This path force-installs the extension on Chrome and delivers the managed config so the extension...
Intune · ADMX / OMA-URI · Windows
Deploy the AgentKeeper browser extension to Windows devices managed by Microsoft Intune. This path force-installs the extension on Chrome and delivers the managed config so the extension self-enrolls with no user interaction.
Prerequisites
- Microsoft Intune with device management for Windows
- Chrome deployed to managed devices
- An org API key from Settings → Access → API keys (starts with
ak_live_)
The AgentKeeper Chrome extension ID is lllalmnahkbikalapoancgfkiegfoiim (shared by Chrome, Edge, Brave, and Arc). It is already filled into the templates below.
Step 1: Force-install the extension
- Open the Microsoft Intune admin center.
- Go to Devices → Configuration → Create → New Policy.
- Platform: Windows 10 and later, Profile type: Administrative Templates (ADMX).
- Search for ExtensionInstallForcelist under Chrome settings.
- Enable the policy and add the entry:
lllalmnahkbikalapoancgfkiegfoiim;https://clients2.google.com/service/update2/crx
- Assign the policy to your target device group.
Alternatively, use an OMA-URI custom policy:
| Setting | Value |
|---|---|
| OMA-URI | ./Device/Vendor/MSFT/Policy/Config/Chrome~Policy~googlechrome~Extensions/ExtensionInstallForcelist |
| Data type | String |
| Value | <enabled/><data id="ExtensionInstallForcelistDesc" value="1lllalmnahkbikalapoancgfkiegfoiim;https://clients2.google.com/service/update2/crx"/> |
Step 2: Deploy managed config
Do not put the managed config inside
ExtensionSettings(e.g. anExtensionSettingsOMA-URI with amanaged_configurationblock). Chrome and Edge reject that withSchema validation error: Unknown property: managed_configurationand the extension never receives its configuration, so it stays "needs to connect". Chrome extension managed storage is a separate policy tree (3rdparty\extensions\<id>\policy), delivered below.
Chrome and Edge read extension managed config from the registry under the per-extension 3rdparty policy key.
Intune does not expose that key through the Chrome ADMX, so deliver it with a PowerShell platform script
(Devices → Scripts and remediations) that writes the registry values.
Machine-wide values: Run in system context (Run this script using the logged-on credentials: No):
$paths = @(
"HKLM:\SOFTWARE\Policies\Google\Chrome\3rdparty\extensions\lllalmnahkbikalapoancgfkiegfoiim\policy",
"HKLM:\SOFTWARE\Policies\Microsoft\Edge\3rdparty\extensions\lllalmnahkbikalapoancgfkiegfoiim\policy"
)
foreach ($p in $paths) {
New-Item -Path $p -Force | Out-Null
Set-ItemProperty -Path $p -Name "orgApiKey" -Value "ak_live_xxxxxxxx" -Type String
Set-ItemProperty -Path $p -Name "backendUrl" -Value "https://www.agentkeeper.dev/api" -Type String
}
Replace ak_live_xxxxxxxx with your organization API key from Settings → Access → API keys. backendUrl is optional;
the extension defaults to https://www.agentkeeper.dev/api; only set it (to your own host) for on-prem.
Per-user userEmail (required for attribution): The managed value is a literal, so Intune does not expand {{userPrincipalName}}
inside a raw registry write (that token is only substituted in Intune App Configuration policies). Bind the
user by writing the signed-in user's UPN at logon with a second script run using the logged-on credentials: Yes:
# agentkeeper-user-email.ps1
$userEmail = (whoami /upn) 2>$null
if (-not $userEmail) { $userEmail = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name }
foreach ($vendor in @("Google\Chrome", "Microsoft\Edge")) {
$p = "HKCU:\SOFTWARE\Policies\$vendor\3rdparty\extensions\lllalmnahkbikalapoancgfkiegfoiim\policy"
New-Item -Path $p -Force | Out-Null
Set-ItemProperty -Path $p -Name "userEmail" -Value $userEmail -Type String
}
Do not skip this script. orgApiKey alone is enough for the extension to connect, but a device that
enrolls without a userEmail stays unattributed and shows up as an anonymous workstation. Directory sync
cannot recover it on its own: with no email (and no provider user id) on the captured events there is nothing to
match the device against. Deploy both scripts to the same device group.
Step 3: Assign and sync
- Assign the force-install policy and both managed-config scripts to the same device group.
- Force a sync: Devices → select a device → Sync.
- Policies and scripts apply within minutes; Chrome/Edge pick up the new policy on next launch.
Microsoft Edge
The scripts in Step 2 already write both the Chrome and Edge 3rdparty hives, and Edge installs Chrome Web Store
extensions natively via the same ID. Add the Edge equivalent of the Step 1 force-install policy
(ExtensionInstallForcelist under the Edge ADMX) to force-install it there too.
Verifying the rollout
On a managed Windows device:
- Open
chrome://policy(oredge://policy). ConfirmExtensionInstallForcelistshows the AgentKeeper entry, and thatorgApiKey/userEmailappear under the3rdpartysection with no schema-validation warning. A warning likeUnknown property: managed_configurationmeans the configuration was placed insideExtensionSettings; move it to the3rdpartyregistry tree from Step 2. - Open
chrome://extensions. AgentKeeper shows "Installed by your administrator". - The extension popup reads "Paired" within seconds of first Chrome launch.
See Verifying deployment for the full checklist including dashboard confirmation.