Installation
Intune Commander is distributed as source code and can be built and run using the .NET 10 SDK. This guide covers building from source, running the application, and platform-specific considerations.Building from Source
Clone the Repository
Build the Application
Restore dependencies
Restore NuGet packages for all projects:This downloads all required dependencies including:
- Avalonia 11.3.x
- Microsoft.Graph.Beta 5.130.x
- Azure.Identity 1.17.x
- LiteDB 5.0.x
- And other packages
Build all projects
Build the solution:This compiles:
Intune.Commander.Core(business logic library)Intune.Commander.Desktop(Avalonia UI application)- Test projects
Run Unit Tests
Verify the build by running unit tests:Integration tests require Azure AD credentials and are skipped by default. See the repository documentation for integration test setup.
Running the Application
Development Mode
Run directly from source using the .NET CLI:Debug Configuration
When running in Debug mode, you get:- Verbose debug logging in the Debug Log window
- Source maps for easier troubleshooting
- No code optimizations
- Full exception details
Release Build
For better performance, build in Release configuration:- Optimized compiled code
- Smaller binary size
- Faster startup and runtime performance
- Information-level logging only
Platform-Specific Notes
Windows (Fully Supported)
Windows 10 1809+ is the recommended and fully supported platform with all features available.
- Install .NET 10 SDK from dotnet.microsoft.com
- Clone and build as described above
- Run using
dotnet run --project src/Intune.Commander.Desktop
- ✅ Interactive browser authentication
- ✅ Client secret authentication
- ✅ All Intune object type management
- ✅ PowerPoint export
- ✅ LiveCharts dashboards
- ✅ Local encrypted cache and profile storage
- Profiles:
%LOCALAPPDATA%\Intune.Commander\profiles.json - Cache:
%LOCALAPPDATA%\Intune.Commander\cache.db - Cache encryption key:
%LOCALAPPDATA%\Intune.Commander\cache-key.bin - Data Protection keys:
%LOCALAPPDATA%\Intune.Commander\keys\
macOS (Limited Support)
Known Limitations:- Interactive browser authentication does not work reliably due to Avalonia browser integration issues
- Device Code authentication is required instead of browser popup
- Some UI rendering differences compared to Windows
-
Install .NET 10 SDK:
-
Clone and build:
-
Use Client Secret authentication instead of Interactive:
- Create a client secret in your Azure AD app registration
- Configure your profile with
authMethod: "ClientSecret" - Provide the client secret in the profile
- Profiles:
~/Library/Application Support/Intune.Commander/profiles.json - Cache:
~/Library/Application Support/Intune.Commander/cache.db - Cache encryption key:
~/Library/Application Support/Intune.Commander/cache-key.bin - Data Protection keys:
~/Library/Application Support/Intune.Commander/keys/
Linux (Planned)
Linux support is planned but currently limited. Initial support will focus on headless/Core scenarios.
- Core libraries (
Intune.Commander.Core) are fully compatible - Desktop UI (Avalonia) has not been tested on Linux
- Planned use case: Scheduled report generation without UI
- Profiles:
~/.config/Intune.Commander/profiles.json - Cache:
~/.config/Intune.Commander/cache.db - Cache encryption key:
~/.config/Intune.Commander/cache-key.bin - Data Protection keys:
~/.config/Intune.Commander/keys/
- Headless mode for automated exports
- CLI interface for scripting
- Docker container for scheduled tasks
Self-Contained Deployment
For distribution to machines without .NET SDK installed, create a self-contained deployment:Windows x64
Intune.Commander.Desktop.exe- .NET runtime libraries
- All NuGet package dependencies
macOS x64
macOS ARM64 (Apple Silicon)
Syncfusion License Configuration
The PowerPoint export feature uses Syncfusion.Presentation.Net.Core, which requires a license key.For Development Builds
Set the license key as an environment variable before building: Windows (PowerShell):For Published Releases
Embed the license key during publish:Official release binaries have the license key embedded during the GitHub Actions build process. End users do not need to configure a license.
Troubleshooting Build Issues
Build Fails with NuGet Restore Errors
Solution: Clear the NuGet cache and restore:Microsoft.Graph.Beta Package Not Found
Solution: Ensure you’re using .NET 10 SDK and have access to nuget.org:Avalonia Designer Issues in Visual Studio
Solution: Avalonia XAML designer requires the Avalonia extension:- Install “Avalonia for Visual Studio 2022” from Extensions → Manage Extensions
- Restart Visual Studio
- Open
.axamlfiles to see the designer
macOS Code Signing Issues
Solution: For development builds, you don’t need code signing:Next Steps
Now that you have Intune Commander built and running:App Registration
Set up Azure AD app registrations for authentication
Quickstart Guide
Configure your first profile and connect to a tenant
Prerequisites
Review system and permission requirements
Contributing
Learn how to contribute to Intune Commander development