A comprehensive PowerShell GUI application for managing and updating Microsoft 365, Azure, and Security PowerShell modules with an intuitive interface.
- โ Interactive GUI - User-friendly Windows Forms interface
- โ Bulk Operations - Select multiple modules for batch processing
- โ Version Checking - Compare installed vs available versions
- โ Smart Installation - Handles both new installs and updates
- โ Real-time Progress - Progress bars and status updates
- โ Dual Output - Results shown in both GUI and PowerShell console
- โ Error Handling - Comprehensive error messages and solutions
- โ Flexible Options - Force installs, prerelease versions, scope selection
- โ Security Management - Microsoft Defender, Security Center, Intune modules
- โ Authentication - Modern auth with MSAL and legacy options
| Module | Description |
|---|---|
| ExchangeOnlineManagement | Exchange Online (EXO) management |
| Microsoft.Online.SharePoint.PowerShell | SharePoint Online (SPO) administration |
| MicrosoftTeams | Microsoft Teams management |
| Microsoft.Graph | Microsoft Graph (Complete SDK) |
| Microsoft.Graph.Identity.DirectoryManagement | Entra ID Directory Management |
| Microsoft.Graph.Security | Microsoft Graph Security (Defender for Endpoint) |
| Microsoft.Graph.DeviceManagement | Intune Device Management |
| Az | Azure PowerShell (Complete Az Module) |
| Az.Accounts | Azure Accounts (Core authentication) |
| Az.Resources | Azure Resources management |
| Az.KeyVault | Azure Key Vault operations |
| Az.Storage | Azure Storage management |
| Az.Security | Azure Security Center (Defender for Cloud) |
| MSAL.PS | Microsoft Authentication Library (Modern Auth) |
| MSOnline | Legacy Azure AD module |
| AzureAD | Legacy Azure AD module (newer) |
| Microsoft.PowerApps.Administration.PowerShell | Power Platform Admin |
| Microsoft.PowerApps.PowerShell | Power Platform development |
| Microsoft.Xrm.Data.PowerShell | Dynamics 365 operations |
| PnP.PowerShell | PnP PowerShell (SharePoint/M365) |
| Microsoft.PowerShell.SecretManagement | Secret Management framework |
| Microsoft.PowerShell.SecretStore | Local secret storage |
| Security Area | Modules |
|---|---|
| Endpoint Security | Microsoft.Graph.Security |
| Email Security | ExchangeOnlineManagement |
| Cloud Security | Az.Security |
| Device Management | Microsoft.Graph.DeviceManagement |
| Identity Security | Microsoft.Graph.Identity.DirectoryManagement |
| Modern Authentication | MSAL.PS |
| Legacy Identity | MSOnline, AzureAD |
- PowerShell 5.1 or later (Windows PowerShell only)
- Windows operating system (macOS and Linux not supported)
- Internet connection for module downloads
- Administrator privileges (for AllUsers scope installation)
- PowerShellGet module (pre-installed with PowerShell 5.1+)
| Platform | Support | Notes |
|---|---|---|
| Windows 10/11 | โ Full Support | Recommended platform |
| Windows Server | โ Full Support | All features available |
| macOS | โ Not Supported | GUI framework incompatible |
| Linux | โ Not Supported | Windows Forms not available |
For macOS/Linux users: Consider using individual PowerShell commands or Azure Cloud Shell for module management.
- Download
M365ModuleUpdater.ps1from this repository - Save to your desired location
- Run the script
git clone https://github.com/yourusername/M365-PowerShell-Module-Updater.git
cd M365-PowerShell-Module-Updater# Run the script
.\M365ModuleUpdater.ps1
# Or with execution policy bypass
PowerShell -ExecutionPolicy Bypass -File "M365ModuleUpdater.ps1"- Launch the GUI - Run the PowerShell script
- Select Modules - Check the boxes for modules you want to manage
- Configure Options - Set installation scope and other preferences
- Choose Action:
- Check for Updates - See what's available
- Check Current Versions - View installed versions
- Install/Update Modules - Perform the installation/update
| Option | Description |
|---|---|
| Force reinstall | Reinstall even if module is up to date |
| Include prerelease | Install beta/preview versions |
| Skip publisher check | Trust all publishers (use with caution) |
| Installation Scope | CurrentUser (no admin) or AllUsers (requires admin) |
The clean, intuitive GUI showing module selection and options

Real-time progress with both GUI progress bar and console output

WARNING: The version 'X.X.X' of module 'PackageManagement' is currently in use.
Solution: Close all PowerShell windows and restart to complete the update.
ERROR: Cannot be loaded because running scripts is disabled on this system.
Solution: Run with bypass parameter:
PowerShell -ExecutionPolicy Bypass -File "M365ModuleUpdater.ps1"Solution: Run PowerShell as Administrator or use CurrentUser scope.
Solution: Check internet connection and verify module name spelling.
- Always review modules before installation
- Use CurrentUser scope when possible (no admin rights needed)
- Be cautious with "Skip publisher check" option
- Test in non-production environments first
Contributions are welcome! Please feel free to submit a Pull Request. For major changes:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Initial release
- GUI interface for module management
- Support for 23+ Microsoft 365, Azure, and Security modules
- Real-time progress tracking
- Dual output (GUI + console)
- Comprehensive error handling
- Security and compliance module coverage
This project is licensed under the MIT License - see the LICENSE file for details.
Gulab Prasad
- Website: https://gulabprasad.com
- GitHub: @CloudAIGit
- Microsoft PowerShell Team for the excellent module ecosystem
- PowerShell community for inspiration and feedback
- All contributors and users of this tool
If this tool helps you, please consider:
- โญ Starring this repository
- ๐ Reporting any issues you find
- ๐ก Suggesting new features
- ๐ Sharing with other administrators
Made with โค๏ธ for the Microsoft 365 community
