Entra-PIM
2.0.8
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
Dependencies
This module has no dependencies.
Release Notes
## 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
- .git\COMMIT_EDITMSG
- dev-feature\Combined-PIM.ps1
- .git\hooks\pre-merge-commit.sample
- .git\info\exclude
- .git\objects\02\d6261c8cf9dbd66f917c94a491cb31f76fcfac
- .git\objects\0b\7da8e586d905aba905741887dab8e535dbb75a
- .git\objects\14\4cb8ed0c228e9a983bb965567fad49757c0d95
- .git\objects\2a\239ea1e0b4c22e279c2721ddeec9dae5fe6c50
- .git\objects\32\1529548d74ae34d3ea0076ab36eef7ef521327
- .git\objects\3c\dff3a55d4d008696ec44f4634a2d8c4819c734
- .git\objects\48\b4f87d309652e0667a0b90f32ab44e4906bdda
- .git\objects\4f\1fbc8a4c33dd46cdf758366cd00fa9d903558d
- .git\objects\5c\e14e30b24c6e49ab66216d818c02297ad70cbf
- .git\objects\65\fdd8329028aa384312448ed495ecefaf4241d5
- .git\objects\77\06674c4142182cf117fed3820cd7ba89bba895
- .git\objects\80\9fc626964964ec09af5dcff85e785e762201b7
- .git\objects\88\90e351fc07703363da5e1d5912e26f3b22b926
- .git\objects\98\ec0a98354909a0ab0849d1a3e3bc8851d9f742
- .git\objects\a5\1b19aab1e30a9981689db13ffd20a402668b75
- .git\objects\a9\67df5f6e7dd0182a928c4cafe3d4f4d7328e48
- .git\objects\b5\c40b16964895d6cc53d12f542d44c83949f016
- .git\objects\be\027016a6a832910aace79b33d2d59509ba1a51
- .git\objects\c4\4669ee87762af716a2934a657d136878427c29
- .git\objects\ce\7abd7c5735fa9e20881a5b92352fb98512d687
- .git\objects\d6\988e06e4e6d499223a564f8929736b76ab5944
- .git\objects\de\3500fe6d08453b4960c3a4610960e595d0bd13
- .git\objects\eb\32facb3ade738736769ebccf2b921a4a54e489
- .git\objects\f7\4702f16926c5c7b381b41481db08c23b5618d3
- .git\refs\heads\main
- .git\logs\refs\heads\main
- Entra-PIM.ps1
- .git\config
- dev-feature\Entra-PIM.ps1
- .git\hooks\pre-push.sample
- .git\logs\HEAD
- .git\objects\03\df8bd4d2634ec5d2bfeef053b62ba3a2256c3e
- .git\objects\0b\924f30532531dce542651331df5643297ce34e
- .git\objects\18\9880da187be4e7a4bf5281043bf862c3714a64
- .git\objects\2b\61be6418c530848cb0a2753a861d60798e00c3
- .git\objects\32\2e3fd0c79d1fc37a761b129e740cccc6b3574b
- .git\objects\3d\0770d6e9f8b98a022596cacdac03debf250b18
- .git\objects\49\a777adb4db7cc6366efb86f2ea363dd68e3fbc
- .git\objects\52\3bf74028015c88362a0bdf1863753df63b6dad
- .git\objects\5e\e8722321618d6a15f4903005453641c60414bc
- .git\objects\67\47240797fcbe81bc0268d06ac97ddaca73170c
- .git\objects\7a\71b6b9bc97db6cb134816b43a0c41f01899362
- .git\objects\80\aa57b8b6a8f37c82436a3d25ca5fde48346bcf
- .git\objects\89\38c9e9c684a5ae27074e63fefcdcff6c8f5700
- .git\objects\99\5afaa1ff494dcff7f3d3860fb8d08fbca84090
- .git\objects\a5\9d0b071e30e1ba8e264e11987d04e140cc953e
- .git\objects\af\992ad682a671385d9b38116828262a47a908e0
- .git\objects\b6\28494a7d1a0b049487909dcdf43e829a31de96
- .git\objects\be\2896256d481aa71bdf628f2514869f01331b10
- .git\objects\c4\f4b0166aaa4a57f32fe56e92763b6205ec2e48
- .git\objects\d0\a739ce237b08a401c4139cfb45ad5ab9943c4d
- .git\objects\d8\a5b220fdf113c02cc72f4d9c4aac77d4b57263
- .git\objects\e0\86832da16c868c3ad124aff0e1cd104b2aac54
- .git\objects\ee\125fe6cd4e30b2d1a0c9d21aa5b47d92084908
- .git\objects\f9\d523c1baa41ec55652d479756ebaad6b94edeb
- .git\refs\tags\v1.0.0
- .git\refs\remotes\origin\dev-feature
- Entra-PIM.psd1
- .git\description
- dev-feature\PIM-Activation-Browser.ps1
- .git\hooks\applypatch-msg.sample
- .git\hooks\pre-rebase.sample
- .git\refs\stash
- .git\objects\04\df54acbaf924cf65739e518e3b2094eaa5d753
- .git\objects\0d\4e7aef0c76c62568e59394c03977f155d3c403
- .git\objects\1c\81c29cee5605fec4105cca8d580919b5267b97
- .git\objects\2b\fdc71d1052bbd8ff679d1770781f68bb0865d7
- .git\objects\33\f6f3549b5e1074f03f47d5fd69d2dad30fc2bb
- .git\objects\3d\25fb4bdc5f3ee7dc7e0c2321752e71134eb43f
- .git\objects\4a\192885e4302da9c8236f07cabffa66a2829253
- .git\objects\53\753e9806c1014f1a186fc02e84991411085a9d
- .git\objects\5f\53bc3bba4a9b18dcdbbefd5b32277dbd611ee4
- .git\objects\6b\42c61cf3bd28eb27bf565630f95491bcbb3a92
- .git\objects\7c\dd65f6380ecf9c763a36fad9bf2b3a93714550
- .git\objects\81\65ce31ed4b1b9b286d65dbc415d9497394c349
- .git\objects\8c\58126ecccb033821137d367c49ed5a75d68bf7
- .git\objects\9a\4c1fe9b94264eb25aef73d279acd3d57285ad8
- .git\objects\a5\b0910414ceb9571c5dae9ce6416f282f8ddb7e
- .git\objects\b0\33a506b4fe7b1882fd7b503182f601edbacd67
- .git\objects\b6\b342fc853f8d94ce3f16c9b11b706ccf805eb8
- .git\objects\bf\5e993bab00bee7675b7e7d04bbb1b8c6b3a0e5
- .git\objects\c6\5c3983f8924f2a2edbab9646381ff286d8e11d
- .git\objects\d2\b4ab3ed20590bc03419bf2338cd78fae973613
- .git\objects\d9\2def0f6eb595522942d7afe58bdc5e88048b7b
- .git\objects\e0\a021e3332799eca7f348ca526d9fbf1e7e17bb
- .git\objects\ef\37767b776d945b85ca5994a7d9989d495e6a5c
- .git\objects\fa\04a93479a4b9a42dd51b2c1fcb8f3c240765dd
- .git\refs\tags\v1.1.0
- .git\refs\remotes\origin\HEAD
- Entra-PIM.psm1
- .git\FETCH_HEAD
- dev-feature\PIM-Global-SelfActivate.ps1
- .git\hooks\commit-msg.sample
- .git\hooks\pre-receive.sample
- .git\logs\refs\stash
- .git\objects\05\2bbcdfeeb19d65234667ae89ba575e412c9e7d
- .git\objects\0d\8b4e9fb45e59ba87928ffee318013a7ed040fa
- .git\objects\1e\dbf8d53ce8c062f55374b5c7c8d719136a29b3
- .git\objects\2d\5c1352b787c00271ac1db57b4669dc5de68ef1
- .git\objects\38\7ed7620fb611387d8bf6afdf406097a3fbc752
- .git\objects\3d\fad60a08a4fe099efbbdcd58b17299e98618c8
- .git\objects\4c\8bcdaf1338980986a481d020c38820d1f8fbda
- .git\objects\54\01268262de6fd5b0aa157aaecc275ce37df096
- .git\objects\61\c70d5521ed2f0809db7ca191e499a23a73e8d2
- .git\objects\6e\4f37fb0e4b1b767c4483dd1d344788a70fdf2f
- .git\objects\7e\5c859902d0d86f970c52e19c250b328892fb97
- .git\objects\83\b162451808a7be35b0bfea82e1c1ae90c66d1a
- .git\objects\8c\e44955450ec7a786341be3e2393e3e72c04cb1
- .git\objects\9c\50923a9b62f969660ffec4219259a94e02db68
- .git\objects\a6\c13ce7d5ec26cbb6ddea2306d0dd46ddcb466f
- .git\objects\b0\df5c21a9d443e02b9b98167fda8d59f1de66e9
- .git\objects\b6\cd2e2091e8eaa9c3b2430da9404c1ecfb510b7
- .git\objects\bf\9fa1ffb4cbc7b92db1386fcfb6b525d96e4d9b
- .git\objects\c7\6d262470c9147ceec2492538b5d1f4f85a5c8d
- .git\objects\d3\51676b9a634d03cadae7cf40ee43796e3574a8
- .git\objects\d9\9705a9fb88b2416d826987d5a2f22e07db7d80
- .git\objects\e1\a3d48c545245dd4a6d172e457213fe0ffe0538
- .git\objects\f1\0e285faf2c18bfaf127347446bf677dd03c8da
- .git\objects\fe\60925d469a79e885bbf02bcc2ae9b259a1ceb6
- .git\refs\tags\v1.2.0
- .git\refs\remotes\origin\main
- LICENSE
- .git\HEAD
- .git\hooks\fsmonitor-watchman.sample
- .git\hooks\prepare-commit-msg.sample
- .git\objects\00\1a8b9519e9ccff4086991d103de6fcd1d0da20
- .git\objects\05\a08b6f6cbccb0054dd662fd745eb5f8cb5ad0f
- .git\objects\0d\bf646c6ea92ec874a7932c6a8c70009a562860
- .git\objects\1f\53f7e01b8992529f3bc9e259883bf8ea698ec0
- .git\objects\2d\a9de98459d6e6b4743a50b7c790a9f16bf4134
- .git\objects\38\acf78071e91b70a3003101bbb9c19c46f0b87f
- .git\objects\3e\07f941c6222e9be17d4f560a58bbc4800c0268
- .git\objects\4d\62dcf50349939e35643a170711e13f8a83b232
- .git\objects\57\ae5ce2adb918d0691a7da55848393b72dd8a78
- .git\objects\62\5e5ccac63fa856ce3783ca391f9961ff20a96a
- .git\objects\70\4a78d5d587acbd687fae0c6679ef2ccad61722
- .git\objects\7f\0f3eca7df0357259d74d60cb0e04616c9853e3
- .git\objects\85\a9d3b2d4c4d94c7b225dfb5bc1bd6524e3093d
- .git\objects\8e\67076653ace5489d534680c96f3cc1060b8015
- .git\objects\9c\b87e374a9c824294bae173d7c4755f0e3b1c32
- .git\objects\a6\d9d6ad12a63ca3bc9b9f645f1734f68144bcfe
- .git\objects\b0\e69735a8ad23d13fad6d17b1f2099ef9f617a6
- .git\objects\ba\3a4ceca4d615e213a5b711e8e66e956c0053b3
- .git\objects\c2\b6d1079e43725c3cc56132254b0a56f90d026d
- .git\objects\c7\f38b15508bb5d5b9bd5678cffb0001ec0bae6b
- .git\objects\d3\b51544666b0dc79fea867bfb81762c6f277db7
- .git\objects\da\098ead518cc48475ab13841fe5aeb4497e8d85
- .git\objects\e2\bf65a0960a392c085ecb7b0f1edefc8319ac2d
- .git\objects\f2\07e116a6e2c2d8d385e5886f6b13688050b4eb
- .git\objects\fe\65db0cb6003749130edf6f90a0bac28ad93e09
- .git\refs\tags\v1.3.0
- .git\logs\refs\remotes\origin\dev-feature
- msalruntime.dll
- .git\index
- .git\hooks\post-update.sample
- .git\hooks\push-to-checkout.sample
- .git\objects\01\3eb263f42e90c37deb97a199295ca3040d7b58
- .git\objects\05\c7945ca4fc3d23d6174ca07747ea13cb33fe10
- .git\objects\0e\a2b0506b8320b971e3f0cecd36dd536d4dc77f
- .git\objects\24\126acb208621d514d3932e86114dd862254c3c
- .git\objects\2e\4abc59e3445d813d3a56d4f4d8617a99c34c18
- .git\objects\38\c4ec62fe068ed3b7f3099fc1aec5ea8a34dd97
- .git\objects\40\1f7fc6a6fc18a35253555340a8fadb613df9d0
- .git\objects\4d\aae80f2fc9e1421bd0301aaa30e9307ec8fcd5
- .git\objects\58\6bddd23be5e724f15d9cb69d139eb853bc2c1a
- .git\objects\62\c77ff630232a8ac95aabe86b15bbfdfbef9ec8
- .git\objects\71\67736b24f3100a0a5383f39a01ccb8daade6d1
- .git\objects\7f\11027c4cf6be1d478cbfe219e53a2b5a13dca9
- .git\objects\86\4be3b060f657ef9921e169680a2d0951dd6fac
- .git\objects\8f\5413853df6df05c7a7edb2cff96405812966dc
- .git\objects\9e\2bcd01a779930041b95a3d9ffa4810ada77f9f
- .git\objects\a7\13499a7b74022600d0af0e36a1fd9df46d6587
- .git\objects\b0\fd5aae8e0dbe6f8ab8ec691e19a5bf6fd7ab9c
- .git\objects\bb\e47419cbec022aec9a18f8a7c0790d1603e281
- .git\objects\c2\c925442545a1963bee72d93405c7b0d9d1b4a0
- .git\objects\cb\3af84bd47b235057669264b0eb6537fd803b57
- .git\objects\d4\20b0f08a47ef99406c7a7bf4607ae4435270e3
- .git\objects\da\591446d791cd7d8c2a4265f12bbcc3388e2bd7
- .git\objects\e4\7a41baed8b820d99df5424075a75b8bc4f8249
- .git\objects\f5\c58de7e70f5995e1b70aa07ff5b0b7c3f3ceff
- .git\objects\fe\fedef758dbce8c2a272fa94b35189c7445013c
- .git\refs\tags\v1.3.1
- .git\logs\refs\remotes\origin\HEAD
- Publish-Module.ps1
- .git\ORIG_HEAD
- .git\hooks\pre-applypatch.sample
- .git\hooks\sendemail-validate.sample
- .git\objects\02\246baafb40162afd82eacb9bcb7ae0f768e9fa
- .git\objects\06\0d45c8612092e6be05830e0771f4e04965021b
- .git\objects\0f\c18a1e28afb37f1dd4c09b8fe3ad6d7c78d554
- .git\objects\26\31e0569f8a03a384c35ed42ba8f7cce3a41245
- .git\objects\2e\81286de3750545b3ca51e87269292fd2ec701f
- .git\objects\39\3f6702b7cfcb61fb37a4e8188f4c2cd7ad0261
- .git\objects\41\e261406e4ab8743cd7aaba48fe2f1a5828c748
- .git\objects\4d\c88cf176d49fd96623d8208884d7e76475e88e
- .git\objects\5a\883601ce06265b96ef8071c3754e77c57aeb38
- .git\objects\64\d25e5305a3da26bb62cd416061bd5518ea18f2
- .git\objects\72\3572aa3ad6b5c78742add3138a725c7d307549
- .git\objects\7f\2d2157689018f8d94b55997c2611884ad565ae
- .git\objects\87\355667fbaf9346f791d1e98b0e7ae262296d14
- .git\objects\91\0de4cefa8ca48fadcbe9bcf23043f2a85a259d
- .git\objects\a3\db09616cca3987251dc146324edb961cda6eac
- .git\objects\a7\ea070317943327f7e2d8216712abac6593814e
- .git\objects\b2\60871d2ecf0f8898d251f68f5a31de99e75098
- .git\objects\bc\32dab25a3af7a914ccd5661819e572957412d7
- .git\objects\c3\7a6a7ec61adf2e99c5bd6fa9f7d9e228954635
- .git\objects\cd\b494897550a16aeb6b3032d882594ec8ab6a6e
- .git\objects\d4\83589921f81eb8e46e63a4c6df9c7cc50cce7e
- .git\objects\dc\0af523acf7fb792d111251d1df20bea915bce0
- .git\objects\e7\2010ba498649495a305335331c762217ca99bd
- .git\objects\f6\eef97e485fc87934b38607463ef250c370b469
- .git\refs\heads\dev-feature
- .git\logs\refs\heads\dev-feature
- .git\logs\refs\remotes\origin\main
- README.md
- dev-feature\Azure-PIM.ps1
- .git\hooks\pre-commit.sample
- .git\hooks\update.sample
- .git\objects\02\59377f46f2fab6d3b71466ea269def9eae9a92
- .git\objects\0a\a111e70bab190218e3c464e41d54e88d80618c
- .git\objects\10\8fab720403faaf880f830779bc7712e3342eb2
- .git\objects\29\0b45e76b9e8697f584d3508b57854cb8f55e9a
- .git\objects\31\bd979b984fc8f517d3644506bedc95d434396c
- .git\objects\3a\704c197dd66141823e0fd486e5a65816f5cb6a
- .git\objects\45\f5e2e32e1127facea1b4ec5ff6216ba0aea8d8
- .git\objects\4e\4afdfb43a8d22e8ac4e89475ef21dd61e4b434
- .git\objects\5c\96f600f13a3549f16b25ebadc506da54505cb9
- .git\objects\65\4a4a1d3f74a090adb0aa2020323109b4435f3a
- .git\objects\75\350770f9bdda21863851a4da5e0c3512488a80
- .git\objects\80\06b5149004e337118f6a6fab072e3a2f46428f
- .git\objects\88\340baa4955d24ba775833e0a54aa9d2d58bdf0
- .git\objects\94\1234a5caa601666ea287ad1207269e7a2399de
- .git\objects\a4\c39bcba1a846c6962522fcaaefdb79b4fdde4f
- .git\objects\a9\5b1d39f8a3b9c113a7e08a224dbdce3da7e61d
- .git\objects\b3\c8eb89054da80a448960e8f33fb16cc8f5093b
- .git\objects\bd\6a6339d1de4916a40868c1eaa9f3b8b19d2d20
- .git\objects\c3\8d0b8dc5e262c5b82366706adf6562201c5419
- .git\objects\ce\31bef8ed7e5a16ca418f7d695fb17eb40e4806
- .git\objects\d6\5fbf1a037a5dfa3cce840fad0ccb30aeb1d5fb
- .git\objects\dc\4e1298abb14ef7e33d2c1b9b9a83d42973a029
- .git\objects\e7\ba6ba68d96c560b755b05d951f72ad6c4e0b21
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 2.0.8 (current version) | 5 | 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 | 4 | 12/27/2025 |
| 1.2.0 | 7 | 12/27/2025 |
| 1.1.0 | 5 | 12/27/2025 |
| 1.0.0 | 5 | 12/27/2025 |