Identity and Access Management

Entra Provision On Demand PowerShell Module

It’s 2026 and somehow I keep finding myself back in 2016, integrating heritage applications into modern Identity & Access Management solutions. I’m still writing connectors that integrate the Microsoft Entra outbound provisioning service with SaaS and legacy on‑premises apps using ECMA connectors.

Once you’re in the develop → test → deploy loop, you’re constantly fixing mappings and expressions, replaying failures, and resyncing accounts. That’s where the Entra Provision On Demand PowerShell module comes in.

Instead of installing the Microsoft Graph PowerShell modules and wiring everything yourself, you get a slim, no‑dependency set of cmdlets to connect to Entra ID, enumerate provisioning‑enabled Enterprise Apps, inspect jobs and rules, and trigger on‑demand provisioning for individual objects or batches. Most of the time you’ll be querying the provisioning logs, finding accounts with sync errors, fixing a rule or expression, and then re‑submitting them via Provision on demand programmatically rather than click‑ops in the Entra portal.

Installation

Available on GitHub and the PowerShell Gallery.

Install from the PowerShell Gallery with:

Install-Module EntraProvisionOnDemand

Quick Start

The following example connects to Entra, discovers a provisioning app and job, gets the sync rule, and then provisions a single on‑prem user on demand. There are more examples in the GitHub Repo.

# Import the module
Import-Module EntraProvisionOnDemand

# Connect to Microsoft Graph (interactive)
Connect-EntraProvisioning -TenantId "contoso.onmicrosoft.com"

# Discover your provisioning app
$app = Get-EntraProvisioningApp -DisplayNameFilter "AD to Entra ID" | Select-Object -First 1

# Get the provisioning job
$job = Get-EntraProvisioningJob -ServicePrincipalId $app.Id | Select-Object -First 1

# Get the synchronization rule (required for ECMA/SCIM apps)
$rule = Get-EntraProvisioningRule -ServicePrincipalId $app.Id -JobId $job.JobId | Select-Object -First 1

# Provision a single user
Invoke-EntraProvisionOnDemand -ServicePrincipalId $app.Id -JobId $job.JobId `
    -ObjectId "CN=JohnDoe,OU=Users,DC=contoso,DC=com" -RuleId $rule.RuleId

# Disconnect when done
Disconnect-EntraProvisioning

Cmdlets Overview

Authentication cmdlets

Authentication cmdlets manage the Graph connection used by the module

CmdletDescription
Connect-EntraProvisioningAuthenticate to Microsoft Graph API
Disconnect-EntraProvisioningClear authentication context
Test-EntraProvisioningConnectionVerify connection status and permissions

Discovery cmdlets

Discovery cmdlets help you locate provisioning‑enabled apps, jobs, and rules

CmdletDescription
Get-EntraProvisioningAppList Enterprise Applications with provisioning enabled
Get-EntraProvisioningJobGet synchronization jobs for an application
Get-EntraProvisioningJobStatusGet detailed job status including quarantine info
Get-EntraProvisioningRuleGet synchronization rule IDs from job schema

Provisioning cmdlets

Provisioning cmdlets execute on‑demand provisioning for one or many objects

CmdletDescription
Invoke-EntraProvisionOnDemandTrigger on-demand provisioning for a single object
Invoke-EntraProvisionOnDemandBatchBatch provision from CSV or pipeline with throttling

Logging cmdlets

Logging cmdlets query provisioning audit logs so you can script your troubleshooting instead of living in the portal

CmdletDescription
Get-EntraProvisioningLogQuery provisioning audit logs with filtering

Summary

What started as a script, I turned into a module. A module that I’m using a lot. There are more examples in the GitHub Repo. Hopefully it is helpful to others too.

Darren Robinson

Bespoke learnings from a Microsoft Identity and Access Management Architect using lots of Microsoft Identity Manager, Azure Active Directory, PowerShell, SailPoint IdentityNow and Lithnet products and services.

Recent Posts

Entra News MCP Server

I’ve just published an MCP server that turns Merill & Joshua’s weekly Entra News newsletter…

1 week ago

Entra ECMA2Host Tools PowerShell Module

If you've ever worked with the ECMA2Host for Entra Outbound Provisioning you'll be immediately presented…

3 months ago

PowerShell 7 Support Arrives for the Granfeldt PowerShell Management Agent

For over a decade, the Granfeldt PowerShell Management Agent (PSMA) has been the bedrock for…

5 months ago

PowerShell MCP Azure Function Server

Recently under the experimental Azure Functions build Microsoft Developer Advocates have shown enabling Azure Functions…

6 months ago

EntraPulse – Your AI-Powered Gateway to Microsoft Graph & Docs

Today, I’m super excited to finally announce the Beta release of EntraPulse Lite – a…

8 months ago

Lokka MCP Authentication Enhancements

I'm excited to share some significant authentication enhancements I've contributed to the Lokka MCP Server…

9 months ago

This website uses cookies.