Skip to content

jeremyputman/IntuneBrew

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

400 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IntuneBrew_Header

🍺 IntuneBrew

IntuneBrew is a PowerShell-based tool that simplifies the process of uploading and managing macOS applications in Microsoft Intune. It automates the entire workflow from downloading apps to uploading them to Intune, complete with proper metadata and logos.

🚨 Public Preview Notice

Important

🚧 Public Preview Notice

IntuneBrew is currently in Public Preview. While it's fully functional, you might encounter some rough edges. Your feedback and contributions are crucial in making this tool better!

Thank you for being an early adopter! πŸ™

πŸ”„ Latest Updates

Last checked: 2025-01-30 00:21 UTC

Application Previous Version New Version
Cursor 0.45.4,250126vgr3vztvj 0.45.5,250128loaeyulq8
Grammarly Desktop 1.103.1.0 1.104.1.0
Signal 7.39.0 7.40.0
Brave 1.74.50.0 1.74.51.0
ChatGPT 1.2025.014,1737150122 1.2025.021,1737774839
DataGrip 2024.3.3,243.23654.19 2024.3.4,243.23654.183
IntelliJ IDEA Community Edition 2024.3.2.1,243.23654.153 2024.3.2.2,243.23654.189
Zed 0.170.4 0.171.3

✨ Features

  • πŸš€ Automated app uploads to Microsoft Intune
  • πŸ“¦ Supports both .dmg and .pkg files
  • πŸ”„ Automatic version checking and updates
  • πŸ–ΌοΈ Automatic app icon integration
  • πŸ“Š Progress tracking for large file uploads
  • πŸ” Secure authentication with Microsoft Graph API
  • 🎯 Smart duplicate detection
  • πŸ’« Bulk upload support
  • πŸ” Automatic retry mechanism for failed uploads
  • πŸ”’ Secure file encryption for uploads
  • πŸ“ˆ Real-time progress monitoring

🎬 Demo (New one is recorded ASAP because a lot has changed since this demo)

IntuneBrew Demo

πŸš€ Getting Started

Prerequisites

  • PowerShell 7.0 or higher
  • Microsoft.Graph.Authentication Module must be installed
  • Azure App Registration with appropriate permissions OR Manual Connection via Interactive Sign-In
  • Windows or macOS operating system

πŸ“ Usage

Basic Usage

Download the script: IntuneBrew.ps1

Run the script:

.\IntuneBrew.ps1

Follow the interactive prompts to:

  1. Select which apps to upload
  2. Authenticate with Microsoft Graph
  3. Monitor the upload progress
  4. View the results in Intune

πŸ“± Supported Applications

Application Latest Version
1Password 8.10.58
Acorn 8.0.1
Adobe Acrobat Pro DC 24.005.20393
Adobe Acrobat Reader 24.005.20320
Adobe Creative Cloud 6.5.0.348
Alacritty 0.15.0
Alfred 5.5.1,2273
AltTab 7.19.1
Android Studio 2024.2.2.13
Anki 24.11
AnyDesk 8.1.4
Arc 1.79.0,57949
Asana 2.3.0
Audacity 3.7.1
AWS Corretto JDK 21.0.6.7.1
Azul Zulu Java Standard Edition Development Kit 23.0.2,23.32.11
Azure Data Studio 1.50.0
Bartender 5.2.7
Basecamp 3,2.4.0
BBEdit 15.1.3
BetterDisplay 3.3.3
Bitwarden 2025.1.3
Blender 4.3.2
Brave 1.74.51.0
Bruno 1.38.1
Caffeine 1.5
calibre 7.24.0
Canva 1.102.0
CapCut 3.3.0.1159
ChatGPT 1.2025.021,1737774839
Citrix Workspace 24.11.0.55
Claude 0.7.8,323bb7701662920a3dd34e453243cce6baff27c0
Clipy 1.2.1
Company Portal 5.2412.0
Cursor 0.45.5,250128loaeyulq8
Cyberduck 9.1.2,42722
DataGrip 2024.3.4,243.23654.183
DB Browser for SQLite 3.13.1
DeepL 25.1.11615133
Discord 0.0.334
Docker Desktop 4.37.2,179585
draw.io Desktop 26.0.9
Dropbox 216.4.4420
DuckDuckGo 1.123.0,349
Eclipse Temurin Java Development Kit 23.0.2,7
Elgato Camera Hub 1.11.0.4022
Elgato Stream Deck 6.8.1.21263
Elgato Wave Link 1.10.1.2293
Etcher 1.19.25
Evernote 10.105.4,20240910164757,a2e60a8d876a07eded5d212fa56ba45214114ad0
f.lux 42.2
Fantastical 4.0.4
Figma 124.7.4
Flameshot 12.1.0
Foxit PDF Editor 13.1.6
FreeCAD 1.0.0
FreeMacSoft AppCleaner 3.6.8
Geany 2.0
Ghostty 1.0.1
GIMP 2.10.38,1
Git Credential Manager 2.6.1
GitHub Desktop 3.4.15-3fea2a10
GitKraken 10.6.3
Godot Engine 4.3
Goland 2024.3.2.1,243.23654.166
Google Chrome 132.0.6834.160
Google Drive 103.0.3
Grammarly Desktop 1.104.1.0
HP Easy Admin 2.15.0,240916
Ice 0.11.12
IINA 1.3.5,141
iMazing 3.0.6,21166
iMazing Profile Editor 1.9.2,304501
Insomnia 10.3.0
IntelliJ IDEA Community Edition 2024.3.2.2,243.23654.189
iTerm2 3.5.11
Jetbrains PyCharm Community Edition 2024.3.2,243.23654.177
Karabiner Elements 15.3.0
KeePassXC 2.7.9
Keeper Password Manager 17.0.0
Keka 1.4.7
kitty 0.39.0
Krisp 2.54.6
LibreOffice 24.8.4
LM Studio 0.3.8,4
Logitech Options+ 1.85.655119
Maccy 2.3.0
macFUSE 4.8.3
MacTeX 2024.0312
MenuBar Stats 3.9
Microsoft Auto Update 4.77.24121924
Microsoft Azure Storage Explorer 1.37.0
Microsoft Edge 132.0.2957.127,32cc7c00-5d56-4296-81bc-798f79706d6c
Microsoft Office 16.93.25011212
Microsoft Teams 25007.203.3361.6689
Microsoft Visual Studio Code 1.96.4
Miro 0.10.80
mitmproxy 11.1.0
MongoDB Compass 1.45.2
Mountain Duck 4.17.2,22563
Mounty for NTFS 2.4
Mozilla Firefox 134.0.2
NetBeans IDE 24
Notion 4.4.0
Notion Calendar 1.127.0,250121ji52u08fs
OBS 31.0.1
Obsidian 1.7.7
Ollama 0.5.7
Oracle VirtualBox 7.1.6,167084
OrbStack 1.9.5_18849
Parallels Desktop 20.2.0-55872
PDF Expert 3.10.10,1086
pgAdmin4 8.14
Podman Desktop 1.16.0
Postman 11.30.1
PowerShell 7.5.0
Privileges 2.1.0
Rancher Desktop 1.17.1
Raycast 1.89.1
Real VNC Viewer 7.13.1
Rectangle 0.85
Remote Help 1.0.2404171
RStudio 2024.12.0,467
Santa 2024.9
Shottr 1.8.1
Signal 7.40.0
Slack 4.42.115
Snagit 2024.4.0
Splashtop Business 3.7.2.4
Spotify 1.2.55.235
Stats 2.11.28
Sublime Text 4192
Suspicious Package 4.5,1213
Sync 2.2.48
Synology Drive 3.5.1,16102
Tableau Desktop 2024.3.2
Tailscale 1.78.1
TeamViewer QuickSupport 15
Telegram for macOS 11.7,270736
Termius 9.13.1
Todoist 9.9.7
Transmission 4.0.6
Transmit 5.10.6
UTM 4.6.4
Vivaldi 7.1.3570.39
VLC media player 3.0.21
VSCodium 1.96.4.25026
Webex Teams 45.1.0.31549
WebStorm 2024.3.2.1,243.23654.157
WhatsApp 2.24.25.94
Windows App 11.0.9
Windsurf 1.2.2,be4251dfb74e60e80fa973d61f3505da1ac9032e
WineHQ-stable 10.0
Wireshark 4.4.3
XMind 25.01.01061-202501070704
Yubikey Manager 1.2.5
Zed 0.171.3
Zen Browser 1.7.2b
Zoom 6.3.6.47101

Note

Missing an app? Feel free to request additional app support by creating an issue!

πŸ”§ Configuration

Azure App Registration

  1. Create a new App Registration in Azure
  2. Add the following API permissions:
    • DeviceManagementApps.ReadWrite.All
  3. Update the parameters in the script with your Azure details.
    • $appid = '' # App ID of the App Registration
    • $tenantid = '' # Tenant ID of your EntraID
    • $certThumbprint = '' # Thumbprint of the certificate associated with the App Registration

Certificate-Based Authentication

  1. Generate a self-signed certificate:
$cert = New-SelfSignedCertificate -Subject "CN=IntuneBrew" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256 -NotAfter (Get-Date).AddYears(2)
  1. Export the certificate:
$pwd = ConvertTo-SecureString -String "YourPassword" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath "IntuneBrew.pfx" -Password $pwd
  1. Upload to Azure App Registration:
    • Go to your App Registration in Azure Portal
    • Navigate to "Certificates & secrets"
    • Upload the public key portion of your certificate

App JSON Structure

Apps are defined in JSON files with the following structure:

{
  "name": "Application Name",
  "description": "Application Description",
  "version": "1.0.0",
  "url": "https://download.url/app.dmg",
  "bundleId": "com.example.app",
  "homepage": "https://app.homepage.com",
  "fileName": "app.dmg"
}

πŸ”„ Version Management

IntuneBrew implements sophisticated version comparison logic:

  • Handles various version formats (semantic versioning, build numbers)
  • Supports complex version strings (e.g., "1.2.3,45678")
  • Manages version-specific updates and rollbacks
  • Provides clear version difference visualization

Version comparison rules:

  1. Main version numbers are compared first (1.2.3 vs 1.2.4)
  2. Build numbers are compared if main versions match
  3. Special handling for complex version strings with build identifiers

πŸ› οΈ Error Handling

IntuneBrew includes robust error handling mechanisms:

  1. Upload Retry Logic

    • Automatic retry for failed uploads (up to 3 attempts)
    • Exponential backoff between retries
    • New SAS token generation for expired URLs
  2. File Processing

    • Temporary file cleanup
    • Handle locked files
    • Memory management for large files
  3. Network Issues

    • Connection timeout handling
    • Bandwidth throttling
    • Resume interrupted uploads
  4. Authentication

    • Token refresh handling
    • Certificate expiration checks
    • Fallback to interactive login

πŸ€” Troubleshooting

Common Issues

  1. File Access Errors

    • Ensure no other process is using the file
    • Try deleting temporary files manually
    • Restart the script
  2. Upload Failures

    • Check your internet connection
    • Verify Azure AD permissions
    • Ensure file sizes don't exceed Intune limits
  3. Authentication Issues

    • Verify your Azure AD credentials
    • Check tenant ID configuration
    • Ensure required permissions are granted

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the Project
  2. Create your 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

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Thanks to all contributors who have helped shape IntuneBrew
  • Microsoft Graph API documentation and community
  • The PowerShell community for their invaluable resources

πŸ“ž Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Review the troubleshooting guide
  3. Open a new issue if needed

Made with ❀️ by Ugur Koc

About

IntuneBrew is a PowerShell-based tool that simplifies the process of uploading and managing macOS applications in Microsoft Intune. It automates the entire workflow from downloading apps to uploading them to Intune, complete with proper metadata and logos.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • PowerShell 100.0%