Security / Endpoint Control ยท Modern Endpoint Guides

๐Ÿ” Endpoint Privilege Management (EPM)

Complete Enterprise Guide โ€“ Deploy, configure and operate EPM in Microsoft Intune. Eliminate standing admin rights and enforce least-privilege with full audit trail.

Intune Suite / EPM Add-on Windows 10/11 Zero Standing Privilege Publisher + Hash Rules

๐Ÿ“‹ Overview & Licensing

Endpoint Privilege Management (EPM) allows standard users to elevate specific applications without requiring permanent local admin rights. Every elevation request is logged, auditable and policy-controlled via Intune.

Standard User

Users run as standard users at all times. No local admin. Drastically reduces attack surface.

Controlled Elevation

Specific applications can be elevated per policy: Automatic, User Confirmed, Support Approved or Deny.

Full Audit Trail

Every elevation event logged in Intune Reports. Who elevated, what app, when, with which justification.

No VPN Required

Cloud-native. Policy delivered via Intune MDM channel. Works from anywhere.

Licensing Requirements

LicenseEPM Included?Notes
Microsoft Intune Suiteโœ“ IncludedRecommended โ€“ includes all advanced Intune features
EPM Standalone Add-onโœ“ Yes~$3/user/month. Requires base Intune P1
Microsoft 365 E3โœ— Not includedRequires EPM Add-on
Microsoft 365 E5โœ— Not includedRequires EPM Add-on or Intune Suite
Microsoft 365 F3 (Frontline)โœ— Not includedโ€“
๐Ÿ’ก
License Assignment: The EPM license must be assigned per user in Microsoft 365 Admin Center. Device must be enrolled in Intune and the user must have a valid EPM license for the policy to apply.

๐Ÿ—๏ธ Architecture

EPM is built on top of Intune's MDM channel and leverages the Intune Management Extension (IME) on Windows endpoints. Policy enforcement is done via a kernel-level component.

Intune Policy Engine

Elevation Settings + Elevation Rules delivered via MDM channel to IME on the endpoint.

EPM Client Component

Kernel-level component installed on Windows 10/11. Evaluates elevation requests in real-time.

Microsoft Entra ID

User identity context. Support Approved requires Entra ID authentication for the approval workflow.

Intune Reports

All elevation events flow back to Intune via telemetry. Available in EPM Reports dashboard.

๐Ÿ’ก
EPM Component: EPM installs as part of the Intune Management Extension (IME). No separate agent required. Runs as a protected kernel service that cannot be tampered with by standard users or malware.

โœ… Prerequisites

RequirementDetails
Operating SystemWindows 10 (21H2+) or Windows 11
EnrollmentEntra ID Joined or Hybrid AD Joined + Intune MDM enrolled
LicenseIntune Suite or EPM Add-on per user
IME VersionIntune Management Extension 1.43.203.0 or later
Admin RoleIntune Service Administrator or Endpoint Security Manager
EPM ActivationTenant must have EPM enabled (automatic with valid license)
โš ๏ธ
Standard User Requirement: EPM only works for users who are NOT local administrators. Before deploying EPM policies, remove users from the local Administrators group. Use a Configuration Policy to enforce this: Accounts โ†’ Local Administrators Group โ†’ Remove Members.

โš™๏ธ Elevation Settings Policy

The Elevation Settings Policy is the master policy that enables EPM and controls global behavior. Intune โ†’ Endpoint Security โ†’ Endpoint Privilege Management โ†’ Policies โ†’ Elevation Settings

SettingRecommended ValueNotes
Endpoint Privilege ManagementEnabledMaster switch โ€“ must be Enabled
Default Elevation ResponseDeny All / Approved Elevations OnlyBlock everything not explicitly permitted
Validation (Elevation Rules)Enforce RulesStrict validation of elevation requests
Report-Only ModeOff (Production)Use Report-Only for pilot rollout first
Support Approved Expiry60 minutesHow long an approval token is valid
Send elevation data to MicrosoftEnabledRequired for EPM Reports in Intune
โœ…
Report-Only Mode for Rollout: Start with Default Elevation Response = "Report-only" for 2 weeks. Review which apps users are trying to elevate. Then build rules and switch to "Deny All".

๐ŸŽš๏ธ Elevation Types

Automatic

Automatic Elevation

App elevates silently without user interaction. Use only for fully trusted, IT-managed applications (e.g., software update agents).

User Confirmed

User Confirmed

User receives a dialog and must confirm the elevation with business justification. Default choice for most apps.

Support Approved

Support Approved

User submits a request via the Company Portal. Help Desk reviews and approves. One-time token valid for 60 min.

Deny

Deny

Explicitly block elevation of known dangerous or unauthorized apps. Shown as explicit "Denied" in reports.

๐Ÿ“œ Elevation Rules

Intune โ†’ Endpoint Security โ†’ Endpoint Privilege Management โ†’ Policies โ†’ Elevation Rules

Rule Identification Methods

MethodSecurity LevelUse CaseNotes
Publisher CertificateMediumApps signed by trusted vendor (Microsoft, Adobe)Validates Authenticode signature
File Hash (SHA-256)HighSpecific app versionHash changes with every update!
Publisher + Product NameMedium-HighSpecific product from specific vendorMore granular than Publisher alone
Publisher + HashVery HighExact version of signed appMost recommended for sensitive apps
File PathLowAvoid โ€“ path can be manipulatedUse only as last resort + combine with hash

Example: Creating an Elevation Rule

1

Navigate to Elevation Rules

Intune โ†’ Endpoint Security โ†’ Endpoint Privilege Management โ†’ Create Policy โ†’ Windows โ†’ Elevation Rules

2

Add Rule

  • Name: "Acrobat Installer โ€“ User Confirmed"
  • Elevation Type: User Confirmed
  • Child Process: Allow elevated child processes (if needed)
3

Set Identification

  • Certificate: Upload .cer from Adobe signing cert
  • Product Name: AcroRd32 Setup
  • File Hash: (paste SHA-256 from Get-FileHash)
4

Assign to Groups

Assign to device or user groups. Assign to Pilot group first, then all users after validation.

POST https://graph.microsoft.com/beta/deviceManagement/privilegeManagementElevations

{
  "displayName": "Acrobat Installer โ€“ User Confirmed",
  "description": "Allow Adobe Acrobat installer to elevate with user confirmation",
  "elevationType": "userConfirmed",
  "childProcessBehavior": "allowAll",
  "productName": "AcroRd32 Setup",
  "publisher": "Adobe Inc.",
  "fileName": "AcroRdrDCx64Setup.exe",
  "fileHash": "sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
}
# Get SHA-256 hash of an executable
Get-FileHash -Path "C:\Downloads\AcroRdrDCx64Setup.exe" -Algorithm SHA256

# Output:
# Algorithm  Hash                                                              Path
# ---------  ----                                                              ----
# SHA256     A1B2C3D4E5F6...                                                   C:\Downloads\...

# Get Publisher Certificate details:
$sig = Get-AuthenticodeSignature -FilePath "C:\Downloads\AcroRdrDCx64Setup.exe"
$sig.SignerCertificate | Select-Object Subject, Issuer, NotAfter
# Use Subject for Publisher field in Intune rule

๐ŸŽซ Support-Approved Elevation Flow

๐Ÿ‘ค
User Request
Right-click โ†’ Run with elevated access
โ†’
๐Ÿ“ฑ
Company Portal
EPM request submitted
โ†’
๐ŸŽซ
Approval Code
User receives ticket number
โ†’
โ˜Ž๏ธ
Help Desk
Verifies request in Intune portal
โ†’
โœ…
Approval Token
6-digit code, valid 60 min
โ†’
๐Ÿ”
Elevation
App runs elevated once

Help Desk Approval Process

# Help Desk: Intune โ†’ Endpoint Security โ†’ EPM โ†’ Elevation Requests
# Filter: Status = Pending
# Review: User, App, Justification, Device
# Actions: Approve (generates 6-digit code) or Deny (with reason)

# Approved token expiry: 60 minutes (configurable in Elevation Settings Policy)
# One-time use: Token can only be used once
# Audit: All approvals/denials logged in Intune Reports

๐Ÿ“Š Reports & Monitoring

ReportLocationKey Data
EPM Elevation ReportIntune โ†’ Reports โ†’ Endpoint Privilege ManagementAll elevations: user, app, type, result, timestamp
Managed Elevation ReportEPM โ†’ Elevation Reports โ†’ ManagedPolicy-matched elevations with full details
Unmanaged Elevation ReportEPM โ†’ Elevation Reports โ†’ UnmanagedElevations not matching any rule โ€“ review regularly
Support Approved RequestsEPM โ†’ Elevation RequestsPending/Approved/Denied approval requests
Denied ElevationsEPM โ†’ Elevation Reports โ†’ DeniedApps blocked โ€“ may indicate new rules needed
๐Ÿ’ก
Review Unmanaged Elevations weekly! These are apps users tried to elevate but no rule existed. Use this data to build new rules or proactively install apps without requiring elevation at all.

โญ Best Practices

Start with Report-Only

Run in Report-Only mode for 2โ€“4 weeks. Discover what apps need elevation before enforcing deny.

Publisher + Hash Rules

Use Publisher + Hash for maximum security. Update rules when app versions change.

Remove Standing Admin

Use Configuration Policy to remove users from local Administrators group before EPM rollout.

Pilot Groups First

Deploy to IT team first, then 5% of users, then full rollout. Validate each phase.

Regular Rule Review

Review elevation rules quarterly. Remove stale rules. Update hashes after app updates.

Communicate with Users

Train users on the new process before removing admin rights. Prepare self-service guide.

๐Ÿ”ง Troubleshooting

IssueCauseResolution
Right-click menu missing "Run with elevated access"EPM not enabled / IME not updatedCheck IME version โ‰ฅ 1.43; verify Elevation Settings policy applied
Rule not matchingHash mismatch / Publisher name differentCompare actual cert Subject with rule Publisher field; regenerate hash
Support Approved code not workingExpired (>60 min) / wrong appRe-request approval; verify exact app being elevated matches rule
Elevation Settings policy not appliedLicense not assigned / policy conflictVerify EPM license; check policy assignment scope; Intune โ†’ Devices โ†’ Policy Status
User still has local admin rightsConfig policy not applied yetCheck Configuration Policy for Local Admins; verify device sync
# Check IME version and EPM status on endpoint:
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\IntuneManagementExtension" | Select-Object Version, AgentExecutor

# Check EPM policy applied:
Get-WinEvent -LogName "Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider/Admin" |
  Where-Object {$_.Message -like "*PrivilegeManagement*"} | Select-Object -Last 20

# IME Log โ€“ EPM events:
Get-Content "C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log" -Tail 100 |
  Where-Object {$_ -match "EPM|ElevationRule|Privilege"}

๐Ÿ’ป PowerShell & Graph API

Connect-MgGraph -Scopes "DeviceManagementConfiguration.Read.All"

# Get all EPM elevation events (last 7 days):
$since = (Get-Date).AddDays(-7).ToString("o")
$elevations = Invoke-MgGraphRequest -Method GET `
  -Uri "https://graph.microsoft.com/beta/deviceManagement/privilegeManagementElevations?`$filter=requestCreatedDateTime ge $since"

# Summary by elevation type:
$elevations.value | Group-Object elevationType |
  Select-Object @{N="Type";E={$_.Name}}, Count | Format-Table

# Top elevated apps:
$elevations.value | Group-Object fileName |
  Sort-Object Count -Descending | Select-Object -First 10 |
  Select-Object @{N="App";E={$_.Name}}, Count | Format-Table
# List all EPM elevation rules:
$rules = Invoke-MgGraphRequest -Method GET `
  -Uri "https://graph.microsoft.com/beta/deviceManagement/privilegeManagementElevations/rules"
$rules.value | Select-Object displayName, elevationType, publisher, fileName | Format-Table

# Export rules to JSON for backup:
$rules.value | ConvertTo-Json -Depth 10 |
  Out-File "C:\Backup\EPM-Rules-$(Get-Date -Format yyyyMMdd).json"
# Get pending Support Approved requests:
$requests = Invoke-MgGraphRequest -Method GET `
  -Uri "https://graph.microsoft.com/beta/deviceManagement/privilegeManagementElevations/requests?`$filter=status eq 'pending'"
$requests.value | Select-Object requestId, requestorUserPrincipalName, applicationName, justification | Format-Table

# Approve a request:
Invoke-MgGraphRequest -Method POST `
  -Uri "https://graph.microsoft.com/beta/deviceManagement/privilegeManagementElevations/requests/$requestId/approve" `
  -Body '{"reviewComment":"Approved for one-time use โ€“ valid 60 minutes"}'

โœ… Deployment Checklist

  • ๐Ÿ“ฆ Licensing & Prerequisites
  • EPM license (Intune Suite or Add-on) assigned to all target users
  • Devices enrolled in Intune MDM
  • IME version โ‰ฅ 1.43.203.0 on all endpoints
  • โš™๏ธ Policy Configuration
  • Elevation Settings Policy created and assigned
  • Default Elevation Response = Report-Only (pilot) โ†’ Deny All (production)
  • Support Approved expiry set (60 minutes recommended)
  • ๐Ÿ“œ Elevation Rules
  • All known elevation apps have rules with Publisher + Hash
  • No File Path-only rules in production
  • Dangerous apps have explicit Deny rules
  • ๐Ÿ‘ฅ Rollout
  • Local Administrators group emptied via Configuration Policy
  • Pilot group (IT team) validated for 2 weeks
  • User communication and training completed
  • Help Desk trained on Support-Approved workflow
  • ๐Ÿ“Š Monitoring
  • Unmanaged Elevation Report reviewed weekly
  • EPM Report exported monthly for compliance
  • Rules reviewed and updated quarterly