Overview
Designed and automated a complete Microsoft 365 group taxonomy for a multi-location organization. Built tooling to create dynamic distribution lists from CSV definitions with attribute-based membership rules, and a separate sync tool that keeps static distribution lists aligned with authoritative CSV sources.
Key Features
- Dynamic M365 group creation from CSV with up to 4 attribute conditions per group (department, location, job title, etc.)
- Support for 8 comparison operators: Equals, NotEquals, Contains, StartsWith, Match, In, NotIn, and more
- Automatic Exchange Online provisioning with retry logic for group availability delays
- Owner assignment with automatic service principal cleanup
- Distribution list membership sync: diffs current members against CSV, adds/removes to match, and verifies final state
- Domain validation against tenant verified domains before group creation
- Comprehensive logging with timestamped log files and colored console output
Technical Highlights
- Microsoft Graph API for dynamic group creation with MembershipRule configuration
- Exchange Online Management module for Set-UnifiedGroup and distribution list operations
- Certificate-based authentication via Azure AD app registration
- Group taxonomy spanning 8 CSV files: company-wide, regional, division, business unit, segment, and city/state groupings
- Attribute mapping for 30+ Azure AD user properties including extensionAttribute1-15
- Retry logic (5 attempts with 15-second delays) for Exchange Online provisioning latency
- Compare-Object verification to confirm final membership matches intended state