https://github.com/codeaigit/application
A comprehensive PowerShell GUI application for managing and updating Microsoft 365 PowerShell modules.
https://github.com/codeaigit/application
m365 powershell powershell-script
Last synced: 9 months ago
JSON representation
A comprehensive PowerShell GUI application for managing and updating Microsoft 365 PowerShell modules.
- Host: GitHub
- URL: https://github.com/codeaigit/application
- Owner: CodeAIGit
- License: mit
- Created: 2025-06-17T10:01:46.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-06-17T10:21:32.000Z (10 months ago)
- Last Synced: 2025-06-17T11:24:20.898Z (10 months ago)
- Topics: m365, powershell, powershell-script
- Language: PowerShell
- Homepage: https://gulabprasad.com/
- Size: 16.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Microsoft 365 PowerShell Module Install/Update
A comprehensive PowerShell GUI application for managing and updating Microsoft 365, Azure, and Security PowerShell modules with an intuitive interface.

-blue.svg)

## 🚀 Features
- **✅ 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
## 📦 Supported Modules
| 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 & Compliance Coverage
| 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 |
## 🔧 Requirements
- **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 Compatibility
| 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.
## 📥 Installation
### Option 1: Direct Download
1. Download `M365ModuleUpdater.ps1` from this repository
2. Save to your desired location
3. Run the script
### Option 2: Git Clone
```powershell
git clone https://github.com/yourusername/M365-PowerShell-Module-Updater.git
cd M365-PowerShell-Module-Updater
```
## 🎮 Usage
### Quick Start
```powershell
# Run the script
.\M365ModuleUpdater.ps1
# Or with execution policy bypass
PowerShell -ExecutionPolicy Bypass -File "M365ModuleUpdater.ps1"
```
### Step-by-Step Guide
1. **Launch the GUI** - Run the PowerShell script
2. **Select Modules** - Check the boxes for modules you want to manage
3. **Configure Options** - Set installation scope and other preferences
4. **Choose Action**:
- **Check for Updates** - See what's available
- **Check Current Versions** - View installed versions
- **Install/Update Modules** - Perform the installation/update
### Installation Options
| 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) |
## 🖼️ Screenshots
### Main Interface
*The clean, intuitive GUI showing module selection and options*

### Progress Tracking
*Real-time progress with both GUI progress bar and console output*

### Results Display

## ⚠️ Common Issues & Solutions
### "Currently in Use" Warning
```
WARNING: The version 'X.X.X' of module 'PackageManagement' is currently in use.
```
**Solution**: Close all PowerShell windows and restart to complete the update.
### Execution Policy Error
```
ERROR: Cannot be loaded because running scripts is disabled on this system.
```
**Solution**: Run with bypass parameter:
```powershell
PowerShell -ExecutionPolicy Bypass -File "M365ModuleUpdater.ps1"
```
### Permission Denied (AllUsers scope)
**Solution**: Run PowerShell as Administrator or use CurrentUser scope.
### Module Not Found
**Solution**: Check internet connection and verify module name spelling.
## 🔒 Security Notes
- 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
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📝 Changelog
### Version 1.0
- 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
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 👨💻 Author
**Gulab Prasad**
- Website: [https://gulabprasad.com](https://gulabprasad.com)
- GitHub: [@CloudAIGit](https://github.com/cloudaigit)
## 🙏 Acknowledgments
- Microsoft PowerShell Team for the excellent module ecosystem
- PowerShell community for inspiration and feedback
- All contributors and users of this tool
## ⭐ Support
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**