⭐ ORIGINAL PROJECT: This is a fork of M365Documentation by Thomas Kurth
🙏 Please visit and support the original project: https://github.com/ThomasKur/M365Documentation
Original Author: Thomas Kurth (WorkplaceNinjas)
Automatic Microsoft 365 Documentation to simplify the life of admins and consultants. You can automatically document systems like:
- Microsoft Intune
- Microsoft Entra ID (Azure AD)
- Microsoft Cloud Print
- Microsoft Information protection
- Windows 365 (CloudPC)
This list will expand in the near future.
This is the successor to the IntuneDocumentation module and has much more options like:
- Output to Json
- Backup your configuration and create documentation later
- Compare your configuration over time for example with http://www.jsondiff.com/
- Output to CSV
- Output to Markdown/MD
- Output to HTML
- Flexible Authentication with MSAL.PS
- Support for Certificate and Secret based Authentication
Through the new architecture much other features will follow in the near future.
This fork includes bug fixes and enhancements while maintaining full compatibility with the original module:
- ✅ Fixed Information Protection labels endpoint issues
- ✅ Fixed Cloud Print printer documentation errors
- ✅ Added comprehensive unit testing framework
- ✅ Added non-interactive build script for CI/CD
- ✅ Improved error handling and tenant compatibility
See CHANGELOG.md for detailed information about changes.
Fork Maintainer: Marc Holländer
Version: 3.5.2
The required modules are fully available in the PowerShell Gallery and therefore simple to install.
Install-Module MSAL.PS
Install-Module PSWriteOffice
Install-Module M365Documentation
PowerShell 7 is required.
This section covers basic functionality for interactive usage. Advanced use cases like creating your own app registration is covered in the advanced usage section.
# Connect to your tenant
Connect-M365Doc
# Collect information
$Selection = Get-M365DocValidSection | Out-GridView -OutputMode Multiple
$Sections = $Selection | Select-Object -ExpandProperty SectionName
$Components = $Selection | Select-Object -ExpandProperty Component -Unique
$doc = Get-M365Doc -Components $Components -IncludeSections $Sections
# Output the documentation to a Word file
$doc | Write-M365DocWord -FullDocumentationPath "c:\temp\$($doc.CreationDate.ToString("yyyyMMddHHmm"))-WPNinjas-Doc.docx"
You can now use the Get-M365DocValidSection -Components Intune command to list the complete list of valid sections.
Component: AzureAD AADAdministrativeUnit AADAuthMethod AADBranding AADConditionalAccess AADConditionalAccessSplit AADDirectoryPimRole AADDirectoryRole AADDomain AADIdentityProvider AADOrganization AADPolicy AADSubscription
Component: CloudPrint CPConnector CPPrinter
InformationProtection MIPLabel
Intune MdmAdmxConfigurationProfile MdmAppleConfiguration MdmAutopilotProfile MdmCompliancePolicy MdmConfigurationPolicy MdmConfigurationProfile MdmDeviceAssignmentFilter MdmDeviceCategory MdmEnrollmentConfiguration MdmExchangeConnector MdmPartner MdmPowerShellScript MdmRole MdmShellScript MdmSecurityBaseline MdmTermsAndCondition MdmWindowsUpdate MobileApp MobileAppConfiguration MobileAppDetailed MobileAppManagement ... Use the Get-M365DocValidSection command to get a complete list.
Windows365 W365Image W365OnPremConnection W365ProvisionProfile W365UserSetting
The following entities are documented:
- Configuration Policies
- Compliance Policies
- Device Enrollment Restrictions
- Terms and Conditions
- Applications (Only Assigned)
- Application Protection Policies
- AutoPilot Configuration
- Enrollment Page Configuration
- Apple Push Certificate
- Apple VPP
- Device Categories
- Exchange Connector
- Application Configuration
- PowerShell Scripts
- ADMX backed Configuration Profiles
- Security Baseline
- Custom Roles
The following entities are documented:
- Azure AD Conditional Access Policies
- Translate referenced IDs to real object names (users, groups, roles and applications)
- Domains
- Feature Rollout Policy
- Authentication policies
- Role Assignments & PIM Roles
- Mobile Device Management Policies
- Subscriptions / SKU
- Organizational Settings
- Administrative Units
The following entities are documented:
- Printers
- Connectors
- Printer Shares
The following entities are documented:
- Labels
- Device Images
- Provisioning Profiles
- User Settings
- On-premises Connections
For issues specific to this fork, please register for GitHub and post your inquiry to this project's issue tracker.
For issues with the original module, please visit the original project's issue tracker.
🌟 Thomas Kurth (WorkplaceNinjas) - Creator and maintainer of M365Documentation
- Original repository: https://github.com/ThomasKur/M365Documentation
- Website: https://workplaceninja.cloud/
- Company:
Special thanks to all contributors to the original M365Documentation project:
- @NicoSchmidtbauer - Contributions around HTML output and other fixes and improvements
- @MEM_MVP - Continuous feedback and 10,000+ translations
- @ylepine - Contribution to support Intune Settings catalog
- @johofer - Contribution to remove base64 encoded images from the documentation
- @Microsoftgraph - PowerShell Examples: https://github.com/microsoftgraph/powershell-intune-samples
- @PrzemyslawKlys - PSWriteWord Module for Word file creation: https://github.com/EvotecIT/PSWriteOffice
- @MScholtes - Transpose-Object example: https://github.com/MScholtes/TechNet-Gallery
Marc Holländer - Bug fixes, testing framework, and enhancements (this fork)
This project maintains the same license as the original M365Documentation project.
Original Project: Copyright (c) 2025 Thomas Kurth. All rights reserved.

