Entra-PIM
2.2.6
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) 2025. All rights reserved.
Package Details
Author(s)
- markorr321
Tags
Entra PIM Azure Identity Governance MicrosoftGraph Privileged RoleManagement AzureResources CrossPlatform macOS
Functions
Start-EntraPIM Configure-EntraPIM Clear-EntraPIMConfig Get-EntraPIMHelp
Dependencies
This module has no dependencies.
Release Notes
## 2.2.4
- Development version for testing update notifications
## 2.2.3
- Fixed update notification version detection - now properly extracts version from PowerShell Gallery redirect headers
- Update notifications now work correctly for all users
## 2.2.2
- Test release for update notification functionality
## 2.2.1
- Interactive update prompt - users can now update immediately when prompted (Y/N/Enter)
- Auto-update on confirmation with automatic module reload
- Improved user experience with "Press Enter to Exit" prompts (no colon)
## 2.2.0
- Added automatic update notifications - checks PowerShell Gallery once per 24 hours
- Inline red notification when newer version is available
- Cached version checks to minimize network calls
- 5-second timeout for non-blocking updates
- Can be disabled via ENTRAPIM_DISABLE_UPDATE_CHECK environment variable
## 2.1.0
- Added Configure-EntraPIM command for persistent configuration via environment variables
- Added Clear-EntraPIMConfig command to remove saved configuration
- Added Get-EntraPIMHelp command for comprehensive command reference
- Added visual confirmation of which app registration is being used during authentication
- Fixed Windows terminal exit behavior for Ctrl+Q in Entra workflow
- Fixed MSAL assembly conflict when multiple Microsoft modules are loaded
- macOS: Automatic PowerShell profile integration for persistent configuration
## 2.0.9
- Bug fix: Module wrapper now properly exposes ClientId and TenantId parameters
## 2.0.8
- Added ClientId and TenantId parameters for custom app registration support
- Switched to least-privilege Graph permissions for better security
- Fixed macOS terminal exit to avoid session save messages
## 2.0.7
- Additional macOS compatibility improvements
## 2.0.6
- Fixed macOS auto-exit issue - clear input buffer after setting TreatControlCAsInput
## 2.0.5
- Fixed Ctrl+C not working on macOS - now properly captures as keyboard input
- Added TreatControlCAsInput for macOS/Linux platforms
- Ctrl+C now works as quit shortcut alongside Ctrl+Q on all platforms
## 2.0.4
- Fixed exit behavior - no longer kills parent apps like VS Code or Windows Terminal
- Only terminates parent PowerShell processes when running nested
## 2.0.3
- Performance optimization: REST API calls with $select for faster role loading
- Fixed deactivation workflow - includes all required fields (PrincipalId, DirectoryScopeId)
- Fixed terminal exit behavior - properly closes terminal on exit
- Simplified input prompts with inline cursor positioning
- Azure PIM: Better subscription discovery via PIM eligible roles API
## 2.0.2
- Handle Ctrl+C gracefully with proper disconnect from Graph/Azure
## 2.0.1
- Fix activation status detection for roles with pending requests
## 2.0.0
- **MAJOR**: Added Azure Resource role support alongside Entra ID roles
- Workflow selector to choose between Entra ID and Azure Resource PIM
- Cross-platform support for Windows and macOS
- Browser-based authentication with ForceLogin prompt
- Dynamic keyboard shortcuts based on platform
- Silent prerequisite checking (only shows output when modules need installing)
## 1.6.0
- Added step-up authentication support for PIM role activations
- Handles MFA/claims challenges automatically when activating privileged roles
## 1.5.0
- Added auto-installation of required modules (Az.Accounts, Microsoft.Graph)
- Script now automatically installs missing dependencies on first run
## 1.4.0
- Switched to WAM (Windows Account Manager) authentication for native SSO
- Removed app registration dependency - uses Microsoft public client ID
- Renamed script to Entra-PIM.ps1
- Code cleanup and optimizations
## 1.3.2
- Bug fixes
## 1.3.1
- Fixed project URLs in manifest
## 1.3.0
- Removed Microsoft.Graph.Users dependency
- Fixed module loading issues
- Improved error handling for module imports
## 1.2.0
- Performance optimizations
- Bug fixes
## 1.0.0
- Initial release
- Browser-based authentication with PKCE
- Role activation and deactivation workflows
- Interactive TUI for role selection
- Caching for optimized API calls
FileList
- Entra-PIM.nuspec
- Entra-PIM-Demo.mp4
- .git\packed-refs
- .git\hooks\fsmonitor-watchman.sample
- .git\objects\00\1a8b9519e9ccff4086991d103de6fcd1d0da20
- .git\objects\1f\53f7e01b8992529f3bc9e259883bf8ea698ec0
- .git\objects\2d\a9de98459d6e6b4743a50b7c790a9f16bf4134
- .git\objects\48\0f529fdec476f8f8ee398fcb2bbd2a500e5225
- .git\objects\5a\01976e7f9596feaab7c414155ad1b11ca57648
- .git\objects\6a\cee82672b471b14e53c10043a58c0562cfa717
- .git\objects\7e\1dd1ace99af995bd0f71fbe5b8c5a412aae700
- .git\objects\92\7d25f40e94348d589c054135ca13a824ef5975
- .git\objects\aa\b5de8b62de5d2a8a6fabc3ccd40942afbf447b
- .git\objects\be\eb157c435ffa391e19047cd410a4abf9cb7917
- .git\objects\d4\83589921f81eb8e46e63a4c6df9c7cc50cce7e
- .git\objects\e9\d8ae379d3a9da975f8c01381815c7504080367
- .git\objects\pack\pack-4f64c4c9106807bcb21a5eadbb6db06a8c814f0a.pack
- dev-feature\Azure-PIM.ps1
- .git\hooks\post-update.sample
- .git\objects\03\eb27bc7a9bba8ab49c755dd241949e0a25d57e
- .git\objects\20\ebeafe948a5a73002de156f02e76761324fe56
- .git\objects\30\d55d28472524b34b03af5742ab75bf014c424d
- .git\objects\48\880d893bf4b3dd0a8f89ceef345fa5c32b90a6
- .git\objects\5a\6e4cfb901309f17c8e284a2143040cabbed240
- .git\objects\6b\42c61cf3bd28eb27bf565630f95491bcbb3a92
- .git\objects\7e\82246967d35910a38b6d589ef722f53abfab1c
- .git\objects\96\5711981dd4dd2f5dd15dd3abf980ed2ff2c26c
- .git\objects\ab\3228ae6138ef1da800cffd5223921e1a589713
- .git\objects\be\efbb611a8acb906f64863b768257a6da392efe
- .git\objects\d6\e15ed177d0a5a7c943884f27db1d6af8e6954d
- .git\objects\ea\f918634f3256a19de358530ac2176d1a948dcb
- .git\objects\pack\pack-4f64c4c9106807bcb21a5eadbb6db06a8c814f0a.rev
- Entra-PIM.ps1
- dev-feature\Combined-PIM.ps1
- .git\hooks\pre-applypatch.sample
- .git\objects\05\496bcf671c9b0ac10eccd37b793824b672c013
- .git\objects\22\2880416856e413e4d8ea00a278ffbf39f6ca77
- .git\objects\31\bd979b984fc8f517d3644506bedc95d434396c
- .git\objects\48\b4f87d309652e0667a0b90f32ab44e4906bdda
- .git\objects\5a\bf63a43f64eb0c527b097a10f20d3fd9e5963e
- .git\objects\6c\2e69855eb0ef27b4d4a27757d3168d7daa13a9
- .git\objects\7f\045559d719e05d154b7a7425ea170cce2a4b58
- .git\objects\97\03b175c044bee6d5d9d227bf632b4255346ee8
- .git\objects\ab\d4e9d113c895039c476e50b574fe25d1d7645f
- .git\objects\c4\65ede5f8ce31e4396bc6fee56ce6575c6f202d
- .git\objects\d8\a5b220fdf113c02cc72f4d9c4aac77d4b57263
- .git\objects\ec\afc49f66af5acbf6d5975be541b0e02163789f
- .git\refs\heads\dev-feature
- Entra-PIM.psd1
- dev-feature\Entra-PIM.ps1
- .git\hooks\pre-commit.sample
- .git\objects\08\510dc2eccf4ace22f30411b2d45549b423fe26
- .git\objects\23\fbfcb98487bd6b7c1644d6b0b61a37278da972
- .git\objects\33\5876d94fddafbd598ba776db4808a183c4ef5e
- .git\objects\49\0180357621167d6f847e12416fcbe46424c3d1
- .git\objects\5c\bb244e5dcf1a6388ec2191d8faa7892e38b49f
- .git\objects\6c\d0f3a0fbcd0cf0c2da4d5b0754ac2bf8b57350
- .git\objects\7f\efb7d8b8acf0da6649b51723b55b98a44f6c1f
- .git\objects\98\eefbfdd7f61c824bba8b28fbc4c6a12b8897ed
- .git\objects\b1\c61d66190eeb2b86e7679f6d063ba8a71aa81e
- .git\objects\c6\5c3983f8924f2a2edbab9646381ff286d8e11d
- .git\objects\da\08bc832601f37eac93894feca84310dbb20a5e
- .git\objects\ee\125fe6cd4e30b2d1a0c9d21aa5b47d92084908
- .git\refs\heads\main
- Entra-PIM.psm1
- dev-feature\PIM-Activation-Browser.ps1
- .git\hooks\pre-merge-commit.sample
- .git\objects\0f\c18a1e28afb37f1dd4c09b8fe3ad6d7c78d554
- .git\objects\25\b1713412ce140c0f03c12ad7a6afec15df45d5
- .git\objects\33\d69ac8e4b14c20d70522ac76502e8100e3266d
- .git\objects\49\32b1cd016d15bd910a543d410538c5ef105207
- .git\objects\5d\4430aaec33fe38c3e5d0b26c3ac01b35369797
- .git\objects\6f\06ff3e92d6bdbb4f5c407c758757466d23e236
- .git\objects\80\06b5149004e337118f6a6fab072e3a2f46428f
- .git\objects\9c\46edb1a8f003444e503594b98570d6f97cc962
- .git\objects\b2\c76b346ade835276efc059e3ca173152e61c82
- .git\objects\ca\32cd3a94348e5159365af7276f0092ef01931a
- .git\objects\da\7b579e217138a5c6c2c7fb67666fd1ce070eb6
- .git\objects\ef\2a20823acea7d03cde8d1056898cae666050b9
- .git\refs\tags\v2.1.0
- LICENSE
- dev-feature\PIM-Global-SelfActivate.ps1
- .git\hooks\pre-push.sample
- .git\objects\10\8fab720403faaf880f830779bc7712e3342eb2
- .git\objects\27\3977e724b8315e5da4d268c79649556b966314
- .git\objects\35\a30aabf2bc1b20e43b69560f70eba3f26fc8e8
- .git\objects\49\dcdaa0040014c3908c895e834d90da477fdea8
- .git\objects\5d\6448f1b6f35f1b6ceb13aefd8c81b1429817e2
- .git\objects\71\b4c6fa55b898a70b2af4e9c58650490ce56ae6
- .git\objects\80\9fc626964964ec09af5dcff85e785e762201b7
- .git\objects\9d\9fa52a3533d7d4d32dff40099df8850b077241
- .git\objects\b3\9d6ec5b1e5870e1ca684099b1dd04d93016591
- .git\objects\cb\b3eea36aeed19cbfdbb98c75ed2a5a94085d69
- .git\objects\db\caa3cabff6340ec618489112f2fd45f16324a8
- .git\objects\f1\0e285faf2c18bfaf127347446bf677dd03c8da
- .git\refs\tags\v2.2.0
- msalruntime.dll
- .git\hooks\pre-rebase.sample
- .git\objects\12\d4fe522158736ab14ca259b0f9b21b9c97193e
- .git\objects\29\0b45e76b9e8697f584d3508b57854cb8f55e9a
- .git\objects\37\f122362006c63740fbe8aedaa2e81ae9ab549a
- .git\objects\4a\c0eb19ec3fa6b61be4e7a5c51213c4c27392bd
- .git\objects\5f\a7090982b5272e1abfe3c78efbcfd7b11ef7ee
- .git\objects\71\cc6386272a9af83d99b425ddd2caeb29cabc46
- .git\objects\83\3c55e014782f591ed0c83dba4cb00a6e1c1d73
- .git\objects\9e\2bcd01a779930041b95a3d9ffa4810ada77f9f
- .git\objects\b5\5ab68cb5322708a1685ac76898b32cb52e905c
- .git\objects\cb\b6d0ee402d3a7fd38b04425c9056b05e41a538
- .git\objects\dc\0af523acf7fb792d111251d1df20bea915bce0
- .git\objects\f1\7f792c9316a29b00bdf94e6c9251d156d87e1c
- .git\refs\tags\v2.2.5
- Publish-Module.ps1
- .git\hooks\pre-receive.sample
- .git\objects\13\5842ccac1583995f8e46af7b7e4764e8e5e283
- .git\objects\29\1b7433d7c1ce289171e02bafc83c99dee75728
- .git\objects\38\acf78071e91b70a3003101bbb9c19c46f0b87f
- .git\objects\4d\125d8aef0c323df372e43986cedf0c948b5e7e
- .git\objects\60\a57a42bd8f6e6a643b869a3edf73b7d5ce8d7b
- .git\objects\74\8708ff827a0b966ed572f555770314a372d385
- .git\objects\83\7a34a08e0f5953e18a56e2b541dfb7e01a844d
- .git\objects\9f\e98b03b1f8262d8bd56e8f434e28003a0f01c1
- .git\objects\b5\6454d00f81123435a018d04e41d6654b573f3b
- .git\objects\cd\8e2d7e8f94dd7a9ec35b468b6006e4cb2d1e7a
- .git\objects\dc\4e1298abb14ef7e33d2c1b9b9a83d42973a029
- .git\objects\f5\49c501159fad9473e130bb6973f49e6be09c1b
- .git\logs\refs\heads\dev-feature
- README.md
- .git\hooks\prepare-commit-msg.sample
- .git\objects\17\1b566275f943a4699ffe496ed4ff3a2413bbd1
- .git\objects\29\da241d4d1f535f41b9324f958f84e8d1d2e287
- .git\objects\38\bad1a37ef7beb441c2439bb8a3931735fe6304
- .git\objects\4d\62dcf50349939e35643a170711e13f8a83b232
- .git\objects\61\2b3f321cbd3464b655c280f0b49d0569e1a134
- .git\objects\75\350770f9bdda21863851a4da5e0c3512488a80
- .git\objects\84\7dd438269ebeb6834126d4ac295da99585c419
- .git\objects\a3\db09616cca3987251dc146324edb961cda6eac
- .git\objects\b5\c40b16964895d6cc53d12f542d44c83949f016
- .git\objects\ce\7abd7c5735fa9e20881a5b92352fb98512d687
- .git\objects\df\7f077cbf45b9014d194db09fb612c8808e4859
- .git\objects\f6\d168431fe0801831beb454f5310479b27807e0
- .git\logs\refs\heads\main
- .git\COMMIT_EDITMSG
- .git\hooks\push-to-checkout.sample
- .git\objects\18\06410ff660f50ddf488511a4ed18d58655c704
- .git\objects\2a\1ba4b794f6e82a73b7c7fff0f8f9dea7f0d159
- .git\objects\3c\d3b0226ad5553c35452cb2c818fa3436ab98cb
- .git\objects\4f\1fbc8a4c33dd46cdf758366cd00fa9d903558d
- .git\objects\61\c70d5521ed2f0809db7ca191e499a23a73e8d2
- .git\objects\75\b1e39db71ddfbd34cda009acc32d54ffbe9d78
- .git\objects\84\acf148a40f63c8cbfeb7e08324fa4d076da2aa
- .git\objects\a3\df44e1074d7e67fef7c9a9c1507de9c24e3ef0
- .git\objects\b6\892e001d3132d8037fb39e35f2f0d331320b4b
- .git\objects\ce\7b7285d1574a5cea6225ca5ed496325dfaa15d
- .git\objects\e0\86832da16c868c3ad124aff0e1cd104b2aac54
- .git\objects\f7\4702f16926c5c7b381b41481db08c23b5618d3
- .git\refs\remotes\origin\dev-feature
- .git\config
- .git\hooks\sendemail-validate.sample
- .git\objects\18\11ff0a72e6b10d2e09b71164644daa50a160b1
- .git\objects\2a\239ea1e0b4c22e279c2721ddeec9dae5fe6c50
- .git\objects\3c\dc88f54feb01b8b5204fd128ab4644f9f7b64f
- .git\objects\52\6d750f8c5a0c662501ebc08c2606629a86f9d8
- .git\objects\63\b9135d9c395f928242343e48f135a4d542e8dc
- .git\objects\76\687d3d7a08171dfbb26deb3b6a4242e8a1d2b6
- .git\objects\87\355667fbaf9346f791d1e98b0e7ae262296d14
- .git\objects\a4\20482d32ddecb04085db8899511231837897d6
- .git\objects\b6\a4f75b3587b244fdfcc8b17ed29cab5c7ba796
- .git\objects\cf\7ea595cc164a4c4a7d65f0c19bb8fc5d49e665
- .git\objects\e1\a3d48c545245dd4a6d172e457213fe0ffe0538
- .git\objects\f8\d42fd665708e72690b338ca7acaf81248a1579
- .git\refs\remotes\origin\HEAD
- .git\description
- .git\hooks\update.sample
- .git\objects\19\fbd85d50362c9d57fe30b2f2fe0cd287bddf4f
- .git\objects\2a\8951b90a9559668d3d99d274147da656e89771
- .git\objects\3d\25fb4bdc5f3ee7dc7e0c2321752e71134eb43f
- .git\objects\52\df46f1de996cd95e3081bbd86c446a383ea1b4
- .git\objects\63\b997194be231b028f67c04f54bd670ca87c9a1
- .git\objects\79\a6cf743ea8b836e6c239ddabd2cad067d0398c
- .git\objects\88\e1ac92be4af161e6ab44ea7f21cd7a5fcc83b9
- .git\objects\a4\32dffa7da5104d55134d514ccc5940a75a1731
- .git\objects\b6\b342fc853f8d94ce3f16c9b11b706ccf805eb8
- .git\objects\d1\5e46ff70e71309c4a41a07d58d30e862109268
- .git\objects\e2\bf65a0960a392c085ecb7b0f1edefc8319ac2d
- .git\objects\f9\dfb46cf86061922dae9fa15567d77c2cd527f5
- .git\refs\remotes\origin\main
- .git\FETCH_HEAD
- .git\info\exclude
- .git\objects\1c\4ff5cff9a0ea1e8368b2e982d26a9ae02fa6a6
- .git\objects\2b\fdc71d1052bbd8ff679d1770781f68bb0865d7
- .git\objects\3d\fad60a08a4fe099efbbdcd58b17299e98618c8
- .git\objects\53\3907f6661462a449fad147042d9fd8df1ea590
- .git\objects\64\4cf471c074b1bd2a7d66cf78e3556c670c5bcf
- .git\objects\7a\bd8c1fd7c501172b983415c234c96ca8ed7a1a
- .git\objects\8e\4ddae660073e11d86628b7b4ba785a85ff9dcf
- .git\objects\a5\50625d0e8581448ef86d86b104738ba39e4c22
- .git\objects\b7\956f1e4a9bf1d62de04bbf4ec69f0a30a184c3
- .git\objects\d2\b4ab3ed20590bc03419bf2338cd78fae973613
- .git\objects\e4\7a41baed8b820d99df5424075a75b8bc4f8249
- .git\objects\fa\3805ecec9e6aa640092eed847f653a5b47b925
- .git\logs\refs\remotes\origin\dev-feature
- .git\HEAD
- .git\logs\HEAD
- .git\objects\1c\8e7119921f2eafc8f0cb2fc856afe2f0e1f5a0
- .git\objects\2c\5d0912baa3dc2c90d1a6b121361578fe83581d
- .git\objects\3e\46cdc1e9d0d2724ae32b0c3fab2b6382530c09
- .git\objects\57\45e02bee9ef00cc3cffbc328c810e40955732b
- .git\objects\64\d25e5305a3da26bb62cd416061bd5518ea18f2
- .git\objects\7d\472540b24df69373aa0d894f516daddeb6624c
- .git\objects\8f\3f4bd44387b9ee78eab78e3bd66efc5aaa921f
- .git\objects\a5\9d0b071e30e1ba8e264e11987d04e140cc953e
- .git\objects\bc\32dab25a3af7a914ccd5661819e572957412d7
- .git\objects\d2\b5040c3e82fb3db0a40b022a2832a961bdd125
- .git\objects\e8\cac1b9f7ace5228b559a526a1196c3284f13ad
- .git\objects\fc\12ab1fdf77e1e20b6de7689776810d56c43e75
- .git\logs\refs\remotes\origin\HEAD
- .git\index
- .git\hooks\applypatch-msg.sample
- .git\refs\stash
- .git\objects\1d\95b99f4d01437c8f5a5636fb131172a4c097c0
- .git\objects\2c\b189fd546a8e6115e870ba9cdbf9c1c7f9e06b
- .git\objects\3f\d7f0258bf7b87e7dbf9423e520a20c304889a5
- .git\objects\57\c2fdbbfdcf7e30bab063064b7084a009e99c10
- .git\objects\68\56f37da4d12cdc1d6652177a2efe889baa6685
- .git\objects\7d\5b5a07466d609c5e25e6b9c26a195982dafb04
- .git\objects\91\c77d13ff9d52881fc6c06d45850703c6fcf96a
- .git\objects\a8\a2cf38eee45adcf2cdd3513bb21fb9bdbe2a7f
- .git\objects\be\2896256d481aa71bdf628f2514869f01331b10
- .git\objects\d2\e50fd72f9b5a2f48883e54178ea2e589be1a32
- .git\objects\e8\d7bbbb0e8fb04907bd99866382502d7d111786
- .git\objects\pack\pack-4f64c4c9106807bcb21a5eadbb6db06a8c814f0a.idx
- .git\logs\refs\remotes\origin\main
- .git\ORIG_HEAD
- .git\hooks\commit-msg.sample
- .git\logs\refs\stash
- .git\objects\1f\1a099c208d8e09dc97232ea04e3ddba43990e7
- .git\objects\2d\5c1352b787c00271ac1db57b4669dc5de68ef1
- .git\objects\45\f5e2e32e1127facea1b4ec5ff6216ba0aea8d8
- .git\objects\58\6bddd23be5e724f15d9cb69d139eb853bc2c1a
- .git\objects\6a\167c6039724b704ceaa2159745eabe2354d04a
- .git\objects\7d\5c2b47c2c4544092583137951b56c6d22fb26b
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 2.2.6 (current version) | 6 | 2/10/2026 |
| 2.2.5 | 15 | 2/6/2026 |
| 2.2.4 | 24 | 1/31/2026 |
| 2.2.3 | 5 | 1/31/2026 |
| 2.2.2 | 4 | 1/31/2026 |
| 2.2.1 | 3 | 1/31/2026 |
| 2.2.0 | 6 | 1/31/2026 |
| 2.1.0 | 12 | 1/28/2026 |
| 2.0.9 | 9 | 1/27/2026 |
| 2.0.8 | 9 | 1/21/2026 |
| 2.0.7 | 9 | 1/14/2026 |
| 2.0.6 | 10 | 1/14/2026 |
| 2.0.5 | 6 | 1/14/2026 |
| 2.0.4 | 7 | 1/13/2026 |
| 2.0.3 | 5 | 1/13/2026 |
| 2.0.2 | 8 | 1/13/2026 |
| 2.0.1 | 5 | 1/13/2026 |
| 2.0.0 | 6 | 1/13/2026 |
| 1.7.0 | 8 | 1/12/2026 |
| 1.6.2 | 21 | 12/30/2025 |
| 1.6.1 | 4 | 12/30/2025 |
| 1.6.0 | 7 | 12/29/2025 |
| 1.5.0 | 7 | 12/29/2025 |
| 1.4.0 | 6 | 12/29/2025 |
| 1.3.2 | 5 | 12/29/2025 |
| 1.3.1 | 8 | 12/27/2025 |
| 1.3.0 | 5 | 12/27/2025 |
| 1.2.0 | 8 | 12/27/2025 |
| 1.1.0 | 5 | 12/27/2025 |
| 1.0.0 | 5 | 12/27/2025 |