|
3 | 3 | RootModule = 'PIMActivation.psm1' |
4 | 4 |
|
5 | 5 | # Version number of this module. |
6 | | - ModuleVersion = '1.2.0' |
| 6 | + ModuleVersion = '1.2.1' |
7 | 7 |
|
8 | 8 | # Supported PSEditions - Requires PowerShell Core (7+) |
9 | 9 | CompatiblePSEditions = @('Core') |
|
26 | 26 | # Minimum version of the PowerShell engine required by this module |
27 | 27 | PowerShellVersion = '7.0' |
28 | 28 |
|
29 | | - # Modules that must be imported into the global environment prior to importing this module |
30 | | - RequiredModules = @( |
31 | | - @{ ModuleName = 'Microsoft.Graph.Authentication'; RequiredVersion = '2.29.1' }, |
32 | | - @{ ModuleName = 'Microsoft.Graph.Users'; RequiredVersion = '2.29.1' }, |
33 | | - @{ ModuleName = 'Microsoft.Graph.Identity.DirectoryManagement'; RequiredVersion = '2.29.1' }, |
34 | | - @{ ModuleName = 'Microsoft.Graph.Identity.Governance'; RequiredVersion = '2.29.1' }, |
35 | | - @{ ModuleName = 'Az.Accounts'; RequiredVersion = '5.1.0' } |
36 | | - ) |
| 29 | + # Modules are dynamically installed and imported by the module's initialization logic |
| 30 | + RequiredModules = @() |
37 | 31 |
|
38 | 32 | # Functions to export from this module |
39 | | - FunctionsToExport = @('Start-PIMActivation') |
| 33 | +FunctionsToExport = @( |
| 34 | + 'Start-PIMActivation' |
| 35 | +) |
40 | 36 |
|
41 | 37 | # Cmdlets to export from this module |
42 | 38 | CmdletsToExport = @() |
|
64 | 60 |
|
65 | 61 | # ReleaseNotes |
66 | 62 | ReleaseNotes = @' |
67 | | -## Release Notes v1.2.0 |
68 | | -
|
69 | | -### 🚀 Major Performance Enhancements |
70 | | -- **Batch API Operations**: Complete rewrite of role fetching logic using batch operations (85% reduction in API calls) |
71 | | -- **Intelligent Duplicate Role Handling**: Advanced algorithm for managing multiple instances of same role with proper group attribution |
72 | | -- **Enhanced Group-Role Attribution**: Sophisticated cross-referencing system showing which groups provide which roles |
73 | | -- **Comprehensive Error Handling**: Bulletproof property access protection preventing common PowerShell errors |
74 | | -
|
75 | | -### 🎯 UI/UX Improvements |
76 | | -- **Smooth Progress Flow**: Coordinated progress tracking across all loading phases (no more backwards jumps) |
77 | | -- **Group Visibility**: ProvidedRoles functionality shows exactly which roles each group membership provides |
78 | | -- **Proper Expiration Attribution**: Duplicate roles now show individual expiration times based on their providing groups |
79 | | -- **Enhanced Resource Display**: Shows "Entra ID (via Group: GroupName)" for group-derived roles |
80 | | -
|
81 | | -### 🔧 Technical Improvements |
82 | | -- **Advanced Array Handling**: @() wrapper implementation preventing .Count property errors |
83 | | -- **Safe Property Access**: PSObject.Properties pattern for bulletproof property checking |
84 | | -- **Intelligent Caching**: Enhanced cache invalidation system with proper timing |
85 | | -- **Defensive Coding**: Comprehensive try-catch blocks around all critical operations |
86 | | -
|
87 | | -### 🔍 Debugging & Logging |
88 | | -- **Enhanced Verbose Logging**: Detailed progress tracking with differentiated handling for groups vs Entra roles |
89 | | -- **Sophisticated Matching Logic**: Priority-based group assignment with temporal vs permanent preferences |
90 | | -- **Cross-Reference Validation**: Extensive debugging for group-role relationship verification |
91 | | -
|
92 | | -## Release Notes v1.1.1 |
93 | | -
|
94 | | -### Added |
95 | | -- **Just-in-Time Module Loading**: New `Initialize-PIMModules` system that loads modules only when needed |
96 | | -- **Version Pinning**: Exact module version enforcement to prevent compatibility issues |
97 | | -- **Assembly Conflict Prevention**: Automatic removal of conflicting module versions from session |
98 | | -- Module loading state tracking and compatibility validation |
99 | | -
|
100 | | -### Changed |
101 | | -- **Updated Module Versions**: Now uses Microsoft.Graph 2.29.1 + Az.Accounts 5.1.0 (tested working combination) |
102 | | -- Replaced legacy `Install-RequiredModules` with new `Initialize-PIMModules` function |
103 | | -- Improved module initialization in `Start-PIMActivation` function |
104 | | -- Updated CI/CD workflow to use latest compatible module versions |
105 | | -
|
106 | | -### Removed |
107 | | -- **Scripts Folder**: Removed compatibility testing tools (no longer needed with version pinning) |
108 | | -- Legacy module installation and validation code |
109 | | -- Outdated module version requirements |
110 | | -
|
111 | | -### Fixed |
112 | | -- Resolved `AuthenticateAsync` method signature compatibility issues |
113 | | -- Improved module loading reliability and error handling |
114 | | -- Enhanced troubleshooting guidance for version conflicts |
115 | | -
|
116 | | -## Release Notes v1.1.0 |
117 | | -
|
118 | | -### ⚡ Major Improvements |
119 | | -- **WAM Authentication**: Implemented Windows Web Account Manager (WAM) for reliable authentication |
120 | | -- **Removed MSAL.PS Dependency**: Now uses direct MSAL.NET calls for better reliability and performance |
121 | | -- **Enhanced Authentication Context**: Improved handling of conditional access policies |
122 | | -
|
123 | | -### 🔧 Technical Changes |
124 | | -- Direct integration with Az.Accounts MSAL assemblies |
125 | | -- Eliminated PowerShell 5.1 fallback - now fully PowerShell 7+ native |
126 | | -- Improved error handling and timeout management |
127 | | -- Better assembly loading and management |
128 | | -
|
129 | | -## Release Notes v1.0.1 |
130 | | -
|
131 | | -### 🔧 Bug Fixes |
132 | | -- Fixed authentication context token acquisition for conditional access policies |
133 | | -- Enhanced error handling for authentication scenarios |
134 | | -- Improved MSAL.PS integration for more reliable interactive authentication prompts |
135 | | -- Fixed timing issues with authentication context token validation |
136 | | -
|
137 | | -### 🆕 New Features |
138 | | -- Added token caching to minimize re-authentication prompts |
139 | | -- Enhanced authentication context flow with better error messages |
140 | | -- Improved handling of authentication timeouts and cancellation |
141 | | -
|
142 | | -### 🔧 Technical Changes |
143 | | -- Better integration with MSAL.PS for authentication context scenarios |
144 | | -- Enhanced token validation and refresh logic |
145 | | -- Improved error handling for authentication context failures |
146 | | -
|
147 | | -## Release Notes v1.0.0 |
148 | | -
|
149 | | -### 🎉 Initial Release |
150 | | -- **Modern GUI Interface**: Clean Windows Forms application for PIM role management |
151 | | -- **Multi-Role Support**: Activate Microsoft Entra ID roles and PIM-enabled security groups |
152 | | -- **Authentication Context**: Seamless handling of Conditional Access authentication context policies |
153 | | -- **Bulk Operations**: Select and activate multiple roles simultaneously with policy validation |
154 | | -- **PowerShell Compatibility**: Requires PowerShell 7+ for optimal performance and modern language features |
155 | | -- **Policy Compliance**: Automatic detection of MFA, justification, and ticket requirements |
156 | | -- **Real-time Updates**: Live monitoring of active assignments and pending requests |
157 | | -
|
158 | | -### 🔧 Technical Features |
159 | | -- Direct REST API calls for authentication context preservation |
160 | | -- Automatic module dependency management |
161 | | -- Comprehensive error handling and user feedback |
162 | | -
|
163 | | -### 📋 Requirements |
164 | | -- Windows Operating System |
165 | | -- PowerShell 7+ (Download from https://aka.ms/powershell) |
166 | | -- Microsoft Graph PowerShell modules (auto-installed) |
167 | | -- Az.Accounts module for WAM authentication support |
168 | | -- Appropriate Entra ID permissions for PIM role management |
169 | | -
|
170 | | -### 📝 Development Note |
171 | | -This module was developed with the assistance of AI tools (GitHub Copilot and Claude), combining AI-accelerated development with human expertise in Microsoft identity and security workflows. |
172 | | -
|
173 | | -For detailed usage instructions, see the README.md file. |
| 63 | +## PIMActivation v1.2.1 |
| 64 | +
|
| 65 | +### � What's New |
| 66 | +- Enhanced automatic dependency resolution |
| 67 | +- Added -Force parameter for fully automated setup |
| 68 | +- Cleaner console output with reduced verbose noise |
| 69 | +- Improved error handling and user guidance |
| 70 | +
|
| 71 | +### � Full Release Notes |
| 72 | +For complete release notes, changelog, and detailed information: |
| 73 | +- **GitHub Releases**: https://github.com/Noble-Effeciency13/PIMActivation/releases |
| 74 | +- **Changelog**: https://github.com/Noble-Effeciency13/PIMActivation/blob/main/CHANGELOG.md |
| 75 | +- **Documentation**: https://github.com/Noble-Effeciency13/PIMActivation/blob/main/README.md |
| 76 | +
|
| 77 | +### � Getting Started |
| 78 | +```powershell |
| 79 | +Install-Module PIMActivation -Scope CurrentUser |
| 80 | +Start-PIMActivation |
| 81 | +``` |
| 82 | +
|
| 83 | +PowerShell module for Microsoft Entra ID Privileged Identity Management (PIM) role activations through a modern GUI interface. |
174 | 84 | '@ |
175 | 85 | # Flag to indicate whether the module requires explicit user acceptance |
176 | 86 | RequireLicenseAcceptance = $false |
|
0 commit comments