PIMActivation
1.2.5
PowerShell module for managing Microsoft Entra ID Privileged Identity Management (PIM) role activations through a modern GUI interface. Supports authentication context, bulk operations, and policy compliance. Developed with AI assistance. Requires PowerShell 7+.
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) 2025 Sebastian Flæng Markdanner. All rights reserved.
Package Details
Author(s)
- Sebastian Flæng Markdanner
Tags
PIM PrivilegedIdentityManagement EntraID AzureAD Identity Governance RBAC GUI Authentication ConditionalAccess Security Microsoft Graph
Functions
PSEditions
Dependencies
This module has no dependencies.
Release Notes
## PIMActivation v1.2.5
### 🔧 Fixes
- Resolved Microsoft Graph query limitations when collecting role policies for large sets (e.g., >20 eligible roles of the same type). Implemented chunked batching and a REST-based path with pagination so policies are fetched reliably at scale.
- Added robust fallback to per-item fetching when the service rejects complex filters or returns zero results.
- Corrected control flow and ensured -ErrorAction Stop on policy assignment calls so fallbacks always trigger when needed.
- Addressed a transient InvalidResource/InvalidFilter regression introduced during the fix and removed it.
### ⚡ Improvements
- Performance: Replaced array concatenations with ArrayList/AddRange in hot paths (role collection and batch aggregations).
- Stability: Flattened ArrayList before mapping policies; treat InvalidResource like InvalidFilter for resilient behavior.
- Caching: Memoized scope and AU display name lookups in Get-ScopeDisplayName to reduce repeated Graph calls.
### 📚 More
- Changelog: https://github.com/Noble-Effeciency13/PIMActivation/blob/main/CHANGELOG.md
- Releases: https://github.com/Noble-Effeciency13/PIMActivation/releases
PowerShell module for Microsoft Entra ID PIM role activations with a modern GUI. Requires PowerShell 7+.
FileList
- PIMActivation.nuspec
- Private\Utilities\Clear-ModuleVersionConflicts.ps1
- CHANGELOG.md
- Private\Authentication\Connect-PIMServices.ps1
- Private\RoleManagement\Get-PIMRolesBatch.ps1
- Private\Utilities\Get-MembershipType.ps1
- CONTRIBUTING.md
- Private\Authentication\Disconnect-PIMServices.ps1
- Private\RoleManagement\Initialize-AzureResourceSupport.ps1
- Private\Utilities\Get-ScopeDisplayName.ps1
- LICENSE
- Private\Profiles\Manage-PIMProfiles.ps1
- Private\RoleManagement\Invoke-PIMRoleActivation.ps1
- Private\Utilities\Initialize-PIMModules.ps1
- Private\RoleManagement\Clear-PIMPolicyCache.ps1
- Private\RoleManagement\Invoke-PIMRoleDeactivation.ps1
- Private\Utilities\Install-RequiredModules.ps1
- PIMActivation.psd1
- Private\RoleManagement\Get-AzureResourceRoles.ps1
- Private\RoleManagement\Test-PIMRoleEligibility.ps1
- Private\Utilities\Resolve-PIMDependencies.ps1
- PIMActivation.psm1
- Private\RoleManagement\Get-EntraIDRoles.ps1
- Private\UI\Initialize-PIMForm.ps1
- Private\Utilities\Show-TopMostMessageBox.ps1
- README.md
- Private\RoleManagement\Get-GroupRoles.ps1
- Private\UI\New-PIMActiveRolesPanel.ps1
- Private\Utilities\Start-STAProcess.ps1
- .github\ISSUE_TEMPLATE\bug_report.md
- Private\RoleManagement\Get-PIMActiveRoles.ps1
- Private\UI\New-PIMDurationPanel.ps1
- Private\Utilities\Test-AuthenticationContextToken.ps1
- .github\ISSUE_TEMPLATE\documentation-issue.md
- Private\RoleManagement\Get-PIMEligibleRoles.ps1
- Private\UI\New-PIMEligibleRolesPanel.ps1
- Private\Utilities\Test-ModuleVersionConflicts.ps1
- .github\ISSUE_TEMPLATE\feature_request.md
- Private\RoleManagement\Get-PIMPendingRequests.ps1
- Private\UI\Show-LoadingSplash.ps1
- Private\Utilities\Test-PIMDependencies.ps1
- .github\workflows\PSGalleryPublish.yml
- Private\RoleManagement\Get-PIMPoliciesBatch.ps1
- Private\UI\Show-OperationSplash.ps1
- Private\Utilities\Test-STAMode.ps1
- docs\about_PIMActivation.help.txt
- Private\RoleManagement\Get-PIMRolePolicy.ps1
- Private\UI\Show-PIMActivationDialog.ps1
- Public\Start-PIMActivation.ps1
- Private\Authentication\Clear-AuthenticationCache.ps1
- Private\RoleManagement\Get-PIMRoles.ps1
- Private\UI\Update-PIMRolesList.ps1