Rolling Out Intune Endpoint Privilege Management Safely
A hands-on runbook for piloting Microsoft Intune Endpoint Privilege Management, removing local admin rights and proving elevation rules with evidence.

In this lesson
Table of Contents
Table of contents
Before you begin
- Intune device enrolment and compliance policy basics
- Entra ID group management and RBAC roles
- PowerShell with Microsoft Graph module
Track this tutorial
Choose your current status and tick each safety check as you complete it. Sign in to sync progress between devices.
Current status
Tutorial stages
- Step 1: Confirm licensing and pilot group membership
- Step 2: Remove standing local administrator rights
- Step 3: Build the Endpoint Privilege Management elevation policy
- Step 4: Deploy to the pilot group and validate elevation
0 of 4 stages complete
Before you apply the change
Confirm these production-safety controls during the tutorial.
#Operational requirement
You are going to find a spreadsheet somewhere in this tenant listing every account that has been granted local administrator rights on a laptop “because they need it for the software”. That spreadsheet is a liability, not a policy. Standing local admin is the single easiest privilege for an attacker to abuse once a phishing payload lands, and removing it without breaking legitimate workflows is one of the highest-value changes you can make as an endpoint engineer. That is exactly why this task lands on a junior administrator early: it touches licensing, Entra ID group membership, Intune policy authoring and change control in one exercise, and it teaches you to prove a change works before you scale it.
Your job is to pilot Microsoft Intune Endpoint Privilege Management (EPM) on a small set of Windows devices. You will strip standing admin rights, build an elevation policy that lets named approved applications run elevated on demand, and produce evidence before anyone signs off a tenant-wide rollout. Get the elevation rules wrong in either direction and you cause damage: too tight and the helpdesk queue fills with lockout tickets; too loose and you have built a self-elevation path dressed up as a security control.
#Prerequisites and required permissions
Confirm the following before you touch a single policy. Do not skip this list to save time — every item on it has caused a failed pilot for someone before you.
- Microsoft Intune Suite licence, or the standalone Endpoint Privilege Management add-on, assigned to the pilot users or devices in the Microsoft 365 admin center.
- Windows 10 21H2 or later, or Windows 11, already Intune-enrolled and reporting compliant. If enrolment or compliance status is broken, fix that first. EPM policy will sit silently at a non-applied state on a non-compliant device and give you no useful error to chase.
- An Entra ID role of Intune Administrator, or a custom RBAC role scoped with Create, Read, Update and Delete permissions on Endpoint Security policies.
- A dedicated, assigned Entra ID group for the pilot — call it
SG-EPM-Pilot-Devices— kept deliberately small. Ten to fifteen devices, never a whole department. - An approved change ticket with a defined pilot window and rollback trigger criteria agreed with the service desk lead before you go anywhere near production identities.
#Step 1: Confirm licensing and pilot group membership
Verify the Intune Suite or EPM add-on licence is attached to every account or device you intend to include. Licence gaps are the most common reason EPM policy reports as not applicable, with nothing further to go on.
1Connect-MgGraph -Scopes "User.Read.All","Group.Read.All"
2
3$group = Get-MgGroup -Filter "displayName eq 'SG-EPM-Pilot-Devices'"
4$members = Get-MgGroupMember -GroupId $group.Id
5
6foreach ($m in $members) {
7 Get-MgUserLicenseDetail -UserId $m.Id | Select-Object SkuPartNumber
8}You are looking for a SKU that includes the EPM entitlement, either bundled in the Intune Suite SKU or the standalone add-on. Export this output to a CSV and attach it to the change ticket as your baseline evidence. Do not move to Step 2 until every pilot account or device shows as licensed. An unlicensed device will happily accept the local-admin removal in Step 2 but never receive the elevation policy in Step 3, and that combination leaves a real user with no admin rights and no way to elevate anything.
#Step 2: Remove standing local administrator rights
In the Intune admin center, go to Endpoint security, then Account protection, then Create policy, choosing Windows 10 and later and the Local user group membership profile type. Set the Administrators group action to Restrict membership and list only the accounts that should remain — a break-glass local account, and an on-call support account if your organisation still uses one. Assign this policy to the pilot group only. Never assign it to All devices at this stage.

On the next policy sync, the signed-in standard user is removed from the local Administrators group. Capture a before-and-after screenshot of net localgroup administrators run on a test device, and pull the policy assignment report from Intune showing a successful state for every pilot device. Confirm this with a remote session yourself — do not take the Intune assignment status blade on faith. If you build the elevation policy in Step 3 before removing admin rights here, you create a gap where users have neither standing admin nor a working elevation path, and the helpdesk phone starts ringing within the hour.
#Step 3: Build the Endpoint Privilege Management elevation policy
Go to Endpoint security, then Endpoint Privilege Management, then Create policy, Windows 10 and later. You need two linked policy objects: an elevation settings policy and an elevation rules policy.
In the elevation settings policy, set the default elevation response to deny all requests. This forces every elevation through an explicit rule rather than defaulting open. Set the elevation request reporting scope to all elevations, not just denials — during a pilot you want the full audit trail, not a filtered one. Menu wording in this console changes as Microsoft revises EPM out of preview, so confirm the exact labels in your own tenant rather than trusting a screenshot from elsewhere.
In the elevation rules policy, add one rule per approved application. Choose your identification method carefully: file name plus publisher or certificate subject is the safest balance, file hash is the tightest but breaks on every patch cycle, and file name alone is too loose to survive an audit. Here is a working example for a legacy line-of-business installer:
1{
2 "ruleName": "LOB-Installer-Elevate",
3 "fileName": "LegacyAppSetup.exe",
4 "filePathExact": "C:\Apps\LegacyApp\LegacyAppSetup.exe",
5 "publisherName": "CN=Contoso Software Ltd",
6 "elevationType": "AutomaticallyApprove",
7 "childProcessBehavior": "AllowElevatedChildProcesses"
8}Export the finished rule set as JSON, or a screenshot if export is not available in your build, and attach it to the change record. This is exactly what an auditor asks for six months later when someone questions why an application was authorised to self-elevate. One rule, treated as non-negotiable: never set childProcessBehavior to allow elevated child processes for anything except an installer you control end to end. A browser or scripting host with that flag set is a privilege-escalation path wearing a business justification.
#Step 4: Deploy to the pilot group and validate elevation
Assign both the elevation settings policy and the elevation rules policy to SG-EPM-Pilot-Devices. Force a sync on a test device rather than waiting out the standard cycle:

Get-ScheduledTask -TaskName "PushLaunch" | Start-ScheduledTaskAlternatively, on the device itself, open Settings, Accounts, Access work or school, select the connected account, then Info, then Sync. As a standard, non-admin user, right-click the approved application and select Run with elevated access. The application should launch with an elevation token and no UAC prompt, and the user never holds standing admin rights at any point. Capture a screen recording or timestamped screenshot of the elevation succeeding, plus the corresponding entry in the Endpoint Privilege Management elevation report. Test one deliberate failure too: attempt to elevate an application that has no rule defined, and confirm it is denied cleanly rather than silently allowed through.
#Verification
Before you widen the rollout beyond the pilot group, assemble this evidence pack and hold it against the change ticket:
- The Endpoint Privilege Management elevation report in Intune, filtered to the pilot group, showing successful and denied elevation events with timestamps.
- Local device logs at
C:ProgramDataMicrosoftIntuneManagementExtensionLogsconfirming both the elevation policy and the account-protection policy applied cleanly on at least three pilot devices. - The exported elevation rule set from Step 3, signed off by whoever owns application security exceptions in your organisation.
- Written confirmation from the service desk that no unplanned elevated-privilege tickets were raised in the 48 hours following deployment.
#Failure Modes
| Symptom | Likely cause | Fix |
|---|---|---|
| Elevation policy shows as not applicable on a target device | Missing EPM licence, or the device sits outside pilot group scope | Re-run the Step 1 licence check and confirm group membership with Get-MgGroupMember |
| User elevates the application but it still fails with an internal access-denied error | The rule elevates the launcher but the app writes to a path the elevation token does not cover | Fix the underlying file-system ACL or extend the rule scope; never widen childProcessBehavior as a blanket fix |
| Helpdesk sees a spike in cannot-install tickets right after rollout | Local admin removal in Step 2 was applied before the elevation rule set covered every legitimate installer | Pause further rollout, audit the last 30 days of installer usage via Intune app inventory, add missing rules, retest |
| Elevation report shows requests but no denials or approvals recorded | Reporting scope in the elevation settings policy was left on a filtered value instead of all elevations | Correct the setting and force a resync on affected devices |
#Rollback
If the pilot causes disruption beyond the threshold agreed in the change ticket, reverse it in this specific order. Reversing it the other way round re-creates the exact admin-rights gap you were warned about in Step 2.
- Edit the Local user group membership policy from Step 2. Either change the action back to add for the pilot accounts, or remove the policy assignment from
SG-EPM-Pilot-Devicesentirely. - Force a sync on affected devices using the same
PushLaunchscheduled task command from Step 4, then confirm restoration withnet localgroup administratorson each device. - Unassign — do not delete — the elevation settings and elevation rules policies from the pilot group. You want the rule definitions and audit trail preserved for the retry.
- Update the change ticket with the rollback timestamp, the exact failure evidence that triggered it, and notify the service desk lead that standing admin rights have been restored for the named pilot users.
#Operational Summary
What you hand back at the end of this exercise is a working, evidenced pilot: a small group of devices with standing local admin removed, a validated elevation rule set covering the applications those users genuinely need, and an audit trail proving both the removal and the elevation behaviour actually worked. Keep the evidence pack — the licence export, the policy JSON, the elevation report, the sync logs — because the next stage of this project is expanding to the full estate, and whoever signs off that expansion will ask for exactly this proof rather than your assurance that it worked in testing. Treat the pilot group size as fixed. The temptation to add “just a few more users” before the rule set is proven is precisely how EPM rollouts turn into helpdesk incidents instead of a security win you can point to in a review.
For the underlying policy mechanics and licensing detail, read the Microsoft Intune Endpoint Privilege Management overview and the elevation rules documentation before writing rules for anything beyond this pilot. The matching precedence between file name, publisher and hash is documented there, and it changes how conservatively you should scope each rule as you move past a ten-device test into a live estate.
#Learning Objectives
By the end of this pilot exercise you should be able to demonstrate, with evidence rather than assertion, that you can move a Windows device from standing local administrator rights to a deny-by-default elevation model without breaking a legitimate business workflow. This means being able to trace a single elevation event from the moment a user right-clicks an application through to the corresponding entry in the Intune elevation report, and being able to explain why that entry exists rather than just showing that it does.
You should also be able to justify each identification method choice — file name plus publisher versus hash versus certificate subject — against a specific application's patching cadence, and defend that choice in a change record review. A reviewer who asks 'why not hash-lock this one' should get an answer grounded in how often that binary is rebuilt, not a guess.
Finally, you should be able to distinguish a genuine EPM policy failure from a licensing or group-scoping fault, since both present as a device silently not receiving policy, and confusing the two wastes pilot time chasing the wrong fix.
- Trace one elevation request end to end through settings, rules, sync and report
- Select and defend an identification method against a named application's update pattern
- Separate licensing faults from policy-scoping faults using the Step 1 evidence pattern
- Produce an evidence pack sufficient for a change reviewer without further explanation
#Worked Example
Consider a second pilot application: a certificate-signed diagnostics utility that support staff run occasionally but that is rebuilt monthly, which rules out a hash-based rule since the hash would break at every rebuild. The safer choice here is publisher plus certificate subject, deliberately omitting a fixed file path so the rule survives the utility being relocated between rebuilds, provided the publisher signature stays constant. This is the same file-name-plus-publisher pattern used for the LOB installer, applied to a case where a fixed path would fail rather than protect.
Build this as a second rule inside the same elevation rules policy used in Step 3, rather than a new policy object, so both rules share one audit trail and one assignment to the pilot group. Set childProcessBehavior to deny elevated child processes for this rule specifically, since a diagnostics tool spawning an elevated shell is exactly the self-elevation risk the article warns against for anything other than a controlled installer.
Validate by having a standard pilot user attempt elevation, then check two places rather than one: the Endpoint Privilege Management elevation report for a successful event tied to that user and device, and the local Intune Management Extension log on that device confirming the rules policy applied at the same sync cycle as the settings policy. A rule that shows in the report but not in the local log, or vice versa, indicates a sync timing issue rather than a rule-authoring fault, and should be resynced before you conclude the rule itself is wrong.
If the utility fails to elevate cleanly, roll back this single rule in isolation: remove it from the elevation rules policy object, leave the policy assignment and the LOB installer rule untouched, and resync the affected test device. Confirm rollback by attempting the same elevation again and observing a clean denial rather than a partial failure, then record the removed rule's JSON and the failure evidence in the change ticket before attempting a corrected version.
#Practice Exercise
Using a single device already enrolled in SG-EPM-Pilot-Devices, author a third elevation rule for an application you nominate — pick one with a stable publisher signature but no fixed install path, and justify in writing why file name plus publisher is or is not sufficient for it. Add the rule to the existing elevation rules policy without touching the LOB installer or diagnostics-utility rules already present.
Assign no new policy objects; use the existing pilot group assignment so the change is scoped by rule addition alone, and force a device sync using the same PushLaunch scheduled task method described in Step 4. Confirm the task's effect before treating the exercise as complete: the elevation report must show the new rule evaluated at least once, either as an approval or a clean denial, within one sync cycle.
Then deliberately test the negative case: attempt to elevate a fourth, unlisted application on the same device and confirm it is denied without error noise, matching the deny-all default set in the elevation settings policy. Capture both the positive and negative elevation events as timestamped screenshots.
Finally, practise the rollback path on this rule alone: remove only the rule you added, resync, and verify with a fresh elevation attempt that the application now denies cleanly, leaving the other two rules and the account-protection policy from Step 2 completely unaffected. Record the rollback timestamp and evidence in the same format used for the Step 4 evidence pack.
Comments
Add a thoughtful note on Rolling Out Intune Endpoint Privilege Management Safely. Comments are checked for spam and held for moderation before appearing.
Related articles
Enterprise IT Management
Engineering IT Management for Predictable Microsoft 365 Operations
How to stage, validate and safely roll back a scoped Exchange Online transport rule in Microsoft 365, using audit-only and pilot-enforce gates before any tenant-wide change.
Enterprise IT Management
Continuous Control Monitoring for SOC 2 Audits
How AWS Config, Okta logs and GitHub audit events feed a continuous control monitoring pipeline that replaces manual SOC 2 evidence pulls.
Discover more
Graduate Learning
Learn More About KBY
About KBY
Learn about our mission, editorial standards, and commitment to trusted engineering knowledge.
Why Trust KBY
Explore the processes and policies that ensure our publications are accurate, useful, and responsible.
Newsletter
Get our latest editorial publications, research and practical insights sent directly to your inbox.
Was this useful?
Build practical engineering skills.
Receive new lessons, learning paths, practical exercises and early-career guidance.