Winget-AutoUpdate (WAU) is a PowerShell-based Windows service that automates daily application updates using the winget package manager. It runs as a scheduled task in both system and user contexts, supporting blacklist/whitelist filtering, GPO/Intune management via ADMX templates, and extensible 'Mods' for pre/post-install hooks. The architecture is modular: a main orchestrator (Winget-Upgrade.ps1) loads single-responsibility functions from a `functions/` directory, handles network checks, prerequisite installation, and update logic. Notifications use Windows Toast API with locale support. The MSI installer (built with WiX) creates scheduled tasks and registry configuration. External dependencies include winget CLI, Microsoft Visual C++ Redistributable, and optional AzCopy for Azure Blob mods sync. The codebase demonstrates solid PowerShell engineering with structured logging, semantic versioning, and comprehensive CI/CD pipelines.
IntuneWin32App is a PowerShell module designed for managing Windows 32-bit line-of-business applications in Microsoft Intune. It automates the entire lifecycle of Win32 app management, including packaging applications into the .intunewin format, creating/updating/deleting apps in Intune via Microsoft Graph API, managing assignments (to groups, all users, or all devices), and handling relationships such as dependencies and supersedence. The module implements multiple OAuth 2.0 authentication flows (interactive, device code, client secret, and client certificate) without external dependencies, providing a self-contained solution for secure Graph API interactions. The architecture follows a modular PowerShell module pattern with clear separation of concerns: public functions (user-facing cmdlets) in the Public directory, private helper functions in the Private directory, and a central module manifest. Key entry points include Connect-MSIntuneGraph for authentication, New-IntuneWin32AppPackage for creating .intunewin packages, and various Add/Set/Get functions for app and assignment management. Data flows involve authentication token acquisition, optional app packaging, Graph API calls for app creation/modification, and subsequent assignment/relationship operations. The module relies on Microsoft Graph API endpoints, Azure AD for authentication, and optionally the IntuneWinAppUtil.exe tool for packaging. Notable engineering practices include consistent parameter validation, standardized error handling, reusable API communication logic with retry/pagination mechanisms, and a clean pattern for constructing JSON payloads using ordered hashtables. The module demonstrates significant effort in implementing native OAuth 2.0 flows and maintaining compatibility with evolving Intune features through regular updates.
IntuneManagement is a Windows desktop administration tool for Microsoft Intune/Endpoint Manager, built as a PowerShell/WPF application that authenticates via MSAL (Entra ID) and operates on tenant objects through the Microsoft Graph API (primarily the BETA endpoint). In production it provides export, import, copy, and comparison of Intune policies and configurations (including assignments, scope tags, and dependency resolution), bulk LOB app uploads with encrypted chunked transfer to Azure Storage, ADMX/ADML ingestion to generate custom registry-based policies, assignment usage reporting, and multi-format documentation generation (HTML, Markdown, Word, JSON, CSV) driven by a large embedded metadata catalog of policy schemas. The tool runs both interactively (WPF UI) and silently as a batch/DevOps job via command-line parameters and JSON settings files.