|
3 | 3 | RootModule = 'PIMActivation.psm1' |
4 | 4 |
|
5 | 5 | # Version number of this module. |
6 | | - ModuleVersion = '2.0.0' |
| 6 | + ModuleVersion = '2.1.0' |
7 | 7 |
|
8 | 8 | # Supported PSEditions - Requires PowerShell Core (7+) |
9 | 9 | CompatiblePSEditions = @('Core') |
|
62 | 62 | # A URL to an icon representing this module. |
63 | 63 | IconUri = 'https://raw.githubusercontent.com/Noble-Effeciency13/PIMActivation/main/Resources/icon.png' |
64 | 64 |
|
65 | | - # ReleaseNotes |
66 | | - ReleaseNotes = @' |
67 | | -## PIMActivation v2.0.0 - Azure Resources & Parallel Processing Engine |
| 65 | + # ReleaseNotes |
| 66 | + ReleaseNotes = @' |
| 67 | +## PIMActivation v2.1.0 - Patch & Enhancements |
68 | 68 |
|
69 | | -### 🚀 Major New Features |
70 | | -- **Azure Resource Roles Support**: Full integration with Azure Resource PIM for subscription, resource group, and individual resource role management |
71 | | -- **Parallel Processing Engine**: High-performance concurrent execution for all operations with real-time progress tracking |
72 | | -- **Enhanced Role Display**: Azure roles display with [Azure] prefix and portal-aligned resource/scope columns |
73 | | -- **Cross-Subscription Support**: Automatic enumeration and management across all accessible Azure subscriptions |
74 | | -- **Modular Architecture**: Split functions into individual files for better maintainability |
| 69 | +### ✅ Enhancements |
| 70 | +- Management group display names: management-group scopes are now shown with their friendly display name (or `/` for tenant root) instead of raw MG IDs. |
| 71 | +- Inherited eligible role suppression: subscription-scoped inherited eligible roles are suppressed when the same role is available at the management-group level to avoid duplicate activation entries. |
| 72 | +- Temporary activation detection: initial tenant-root and management-group active assignments are enriched with PIM activation schedule Start/End windows so temporarily activated roles show expiry rather than appearing permanently active. |
| 73 | +- Role definition normalization: role definition identifiers are normalized (GUID) during deduplication to eliminate duplicates caused by full-path vs GUID variants. |
| 74 | +- Import-time PSGallery notification: on import the module performs a best-effort check against the PowerShell Gallery and warns when a newer release is available. The notification follows Microsoft module style and provides Update-Module / Install-Module examples. This check can be suppressed via `$script:SuppressUpdateNotification`. |
75 | 75 |
|
76 | | -### ⚡ Performance Features |
77 | | -- **Parallel Processing by Default**: Concurrent execution for Azure, Entra, and Group operations |
78 | | -- **Real-Time Progress Tracking**: Enhanced verbose output with emoji indicators (🚀, ✅, ❌) and timing metrics |
79 | | -- **Smart Throttling**: Default ThrottleLimit of 10 concurrent operations, configurable up to 50 |
80 | | -- **Thread-Safe Operations**: ConcurrentBag and ConcurrentDictionary for safe parallel result aggregation |
| 76 | +### 🛠️ Fixes (Community Contribution) |
| 77 | +- Activation/Deactivation Scope and Safety: Added explicit `Scope` support when activating and deactivating Azure PIM roles and improved error handling to prevent attempting to deactivate a role that was activated less than the required 5-minute window. (Thanks to Lukas Gosling (@l-gosling) for this contribution.) |
81 | 78 |
|
82 | | -### ✅ Added |
83 | | -- Complete Azure Resource role activation and deactivation support |
84 | | -- Select All button for bulk role selection in GUI |
85 | | -- `Get-AzureResourceRoles` function with parallel subscription processing |
86 | | -- `Initialize-AzureResourceSupport` for Azure module management |
87 | | -- `DisableParallelProcessing` parameter for sequential processing when needed |
88 | | -- Enhanced scope parsing for Azure ARM resource hierarchies |
89 | | -- Support for both PIM-eligible and active Azure Resource role assignments |
90 | | -
|
91 | | -### 🔧 Enhanced Performance |
92 | | -- All v1.2.x optimizations preserved and extended: |
93 | | - - ArrayList-based collections for optimal memory usage |
94 | | - - Batch API operations reducing Graph calls by 85% |
95 | | - - Memoized scope display name lookups |
96 | | - - Intelligent role deduplication and caching |
97 | | - - NEW: Parallel processing across all role types and policy operations |
98 | | -
|
99 | | -### 📋 Requirements |
100 | | -- PowerShell 7.0+ (required for parallel processing engine) |
101 | | -- Az.Accounts 5.1.0+ and Az.Resources 6.0.0+ (auto-installed for Azure resources) |
102 | | -- Microsoft Graph PowerShell modules (existing requirements preserved) |
103 | | -
|
104 | | -### 📚 More |
105 | | -- Changelog: https://github.com/Noble-Effeciency13/PIMActivation/blob/main/CHANGELOG.md |
106 | | -- Blog Post: https://www.chanceofsecurity.com/post/microsoft-entra-pim-bulk-role-activation-tool |
107 | | -- Releases: https://github.com/Noble-Effeciency13/PIMActivation/releases |
| 79 | +### ⚡ Notes |
| 80 | +- These changes are additive and preserve existing public APIs. They improve display fidelity and de-duplication for Azure resource roles and make temporary activations visible as such in the UI. |
108 | 81 |
|
109 | 82 | PowerShell module for comprehensive PIM role management across Entra ID, Groups, and Azure Resources with parallel processing engine and modern GUI. |
110 | 83 | '@ |
|
0 commit comments