Ms365 Tenant Manager
Microsoft 365 tenant administration for Global Administrators.
Before & after
Same prompt, same agent — the only difference is the skill.
Onboarding 40 new users to Microsoft 365 involves several steps: 1. Create the user accounts in Azure AD (now Microsoft Entra ID) 2. Assign appropriate licenses to each user 3. Add users to relevant security groups and distribution lists 4. Configure their mailboxes in Exchange Online 5. Add them to the appropriate Teams You can do this through the admin center UI, but for 40 users you'd probably want to use PowerShell. You'll need the Microsoft Graph PowerShell SDK installed. A CSV file with the user details would be the easiest way to handle a bulk import. Let me know if you'd like help with the PowerShell commands!
BULK ONBOARD — 40 users
Prereq: Connect-MgGraph -Scopes "User.ReadWrite.All","Group.ReadWrite.All","Organization.Read.All"
STEP 0 — LICENSE CHECK FIRST (this is what fails Monday morning)
Get-MgSubscribedSku | Select SkuPartNumber,
@{n='Available';e={$_.PrepaidUnits.Enabled - $_.ConsumedUnits}}
40 seats must be free BEFORE the loop. A mid-run license exhaustion
leaves you with half-provisioned accounts and no clean rollback.
STEP 1 — CSV
UserPrincipalName,DisplayName,Department,JobTitle,ManagerUPN,UsageLocation
STEP 2 — CREATE (idempotent — safe to re-run after a partial failure)
Import-Csv .\newhires.csv | ForEach-Object {
if (Get-MgUser -Filter "userPrincipalName eq '$($_.UserPrincipalName)'" -EA SilentlyContinue) {
Write-Warning "exists, skipping: $($_.UserPrincipalName)"; return
}
$pw = @{ ForceChangePasswordNextSignIn = $true; Password = (New-Password) }
New-MgUser -UserPrincipalName $_.UserPrincipalName -DisplayName $_.DisplayName `
-MailNickname ($_.UserPrincipalName -split '@')[0] -AccountEnabled `
-UsageLocation $_.UsageLocation -PasswordProfile $pw
}
UsageLocation is not optional — license assignment fails without it, and
the error message doesn't say so.
STEP 3 — LICENSE + GROUPS
Prefer group-based licensing over per-user: add to the group, licensing
follows, and offboarding is one removal instead of three.
STEP 4 — CONDITIONAL ACCESS
Confirm new hires land in scope of the MFA policy. A CA policy scoped to
a static group silently excludes everyone created after it was written.
STEP 5 — VERIFY
Compare CSV count to Get-MgUser results; export mismatches. Don't trust
the loop's own output — it reports what it attempted, not what stuck.
Run steps 1–2 against 2 test rows Friday. Monday is not the day to find
out about UsageLocation.About this skill
name: ms365-tenant-manager description: Use when Microsoft 365 tenant administration for Global Administrators.
Ms365 Tenant Manager
Microsoft 365 tenant administration for Global Administrators. Automate M365 tenant setup, Office 365 admin tasks, Azure AD user management, Exchange Online configuration, Teams administration, and security policies. Generate PowerShell scripts for bulk operations, Conditional Access policies, license management, and compliance reporting. Use for M365 tenant manager, Office 365 admin, Azure AD users, Global Administrator, tenant configuration, or Microsoft 365 automation.
What you get
- Public GitHub repo (alirezarezvani/claude-skills)
- the ms365-tenant-manager skill folder with SKILL.md. Part of a 337-skill / 30-agent / 70-command install.
Customize your output
- Fork the repo and adapt the skill's instructions and references to your workflow.
Example output
Activates automatically when your request matches Ms365 Tenant Manager; chains with the other skills, agents, and commands in the collection.
Best for
Creators, builders, and teams using Claude Code.
SKILL.md preview
---
name: ms365-tenant-manager
description: Use for Microsoft 365 tenant administration tasks such as Azure AD user management, Exchange Online configuration, Teams administration, or bulk PowerShell operations.
version: 1.0.0
category: Development / Engineering
author: AgentVolt
license: proprietary
tags:
- development
- engineering
---
# Ms365 Tenant Manager
Handles Microsoft 365 tenant administration for Global Administrators, generating PowerShell for Azure AD, Exchange Online, Teams, and security policy tasks.
## When to use
… (sign up to view the full skill)More development skills
View all Development skills →Generate
Scaffold code, tests, and boilerplate from a short spec.
Performance Profiler
Systematic performance profiling for Node.js, Python, and Go applications.
Threat Detection
Use when hunting for threats in an environment, analyzing IOCs, or detecting behavioral anomalies in telemetry.
Agent Harness
Turns a domain folder of skills into a bounded agentic loop: compile a goal into a task plan, execute with the domain's tools, verify every task, retry within a budget.