Dave is a marketing expert with 15 years experience in the tech and SaaS world. He specializes in educating IT and channel audiences, with a focus on security, privacy, compliance, and marketing technology. With a talent for storytelling and a deep understanding of the industry, Dave transforms complex IT topics into clear, engaging, and impactful narratives.
What happens to Microsoft 365 email signatures after the Azure AD PowerShell retirement?

TL;DR
The Azure AD and MSOnline PowerShell modules that many signature scripts relied on were retired in 2025, so any script pulling user details from the directory now has to be rebuilt on Microsoft Graph PowerShell.
Microsoft Graph is the official replacement for those modules and for EWS, yet it has no public API for creating or setting Outlook signatures, so migrating doesn't restore that capability.
When EWS is blocked by default on October 1, 2026, the one programmatic route some tools used to read and write email signatures closes, with a full shutdown following in April 2027.
Exchange Online PowerShell can still set an Outlook on the web signature, but that command silently stops applying once roaming signatures are turned on, which is increasingly the default.
Together these changes add maintenance rather than removing it: the directory half of a signature script needs rewriting while the signature half loses its cleanest automation path.
Centralized signature management avoids the problem by applying email signatures automatically from synced directory data, with no scripts to rewrite each time Microsoft's platform changes.
If you manage email signatures in Microsoft 365 with PowerShell, the script that read a user's job title last month is already broken, and the script that wrote the signature onto their mailbox is next. The Azure AD and MSOnline PowerShell modules were retired through 2025. Exchange Web Services starts switching off in October 2026. Microsoft Graph the platform Microsoft points to for both, has never had an endpoint for managing signatures.
For most Microsoft 365 administration, the move to Graph is well documented and mostly mechanical. Signatures are the exception, because the specific method IT teams built around, reading a script that both pulls directory data and writes it into a mailbox, sits directly across all three changes at once.
Among the competing guides on this topic we've reviewed, none lay out the Azure AD retirement timeline, the Graph API gap, and the EWS shutdown date together, which is exactly why a script owner can fix one and still get caught out by the other two.
Quick answer
What is Microsoft Graph PowerShell? Microsoft Graph PowerShell is a module built on the Microsoft Graph API—the single interface Microsoft now uses to reach data across Microsoft 365 services including Microsoft Entra ID, Exchange, SharePoint, and Outlook.
Why did my PowerShell email signature script stop working after the Azure AD module retirement?
The Both modules handled user and group management, including reading the directory attributes a signature script needs: names, job titles, departments, and phone numbers.
Microsoft deprecated the Azure AD, Azure AD Preview, and MSOnline PowerShell modules in March 2024 and retired them through 2025, pointing admins to the Microsoft Graph PowerShell SDK as the replacement. The old cmdlets no longer authenticate.
The practical result: any script reading employee details through the Azure AD or MSOnline modules has to be rebuilt against Microsoft Graph PowerShell before it runs again. The part of the script that assembles and applies the signature is untouched by this specific change. Only the directory data feeding it stopped flowing, and a separate set of changes (below) affects the applying side.
Quick answer
Can I still install the Azure AD PowerShell module? No. It's retired, not deprecated, so installing it either fails outright or installs a version that can't authenticate. If a script still calls it, the fix is rewriting those calls against Microsoft Graph PowerShell, not reinstalling the old module.
The cmdlets a signature script calls have direct Microsoft Graph PowerShell equivalents:
Retired cmdlet (Azure AD / MSOnline) | Microsoft Graph PowerShell equivalent |
|---|---|
|
|
|
|
|
|
|
|
What is Microsoft Graph PowerShell and what does it replace?
Microsoft Graph PowerShell is a module built on the Microsoft Graph API, the single interface Microsoft now uses to reach data across Microsoft 365. Microsoft moved to it because one modern, consistent endpoint is easier to secure and maintain than the patchwork of older APIs it replaced.
Rather than a separate interface for every service, Microsoft Graph exposes users, mail, files, groups, and directory data through one API and one access token, reaching Microsoft Entra ID (formerly Azure AD), Exchange, SharePoint, and Outlook from a single endpoint. Microsoft Graph PowerShell wraps that API in cmdlets, so admins script across those services from one module instead of several.
Retiring the Azure AD and MSOnline modules was part of the same consolidation. Both ran on the older Azure AD Graph API, a set of separate interfaces that no longer met current security and cross-platform requirements. Microsoft Graph brings modern authentication and granular permission scopes, and leaves Microsoft with one surface to maintain instead of several.
For identity work, this is a genuine upgrade. A signature script that reads names, titles, and departments can have those queries rewritten in Microsoft Graph PowerShell and keep running. Microsoft Entra PowerShell, also built on Graph, is an identity-focused alternative with close compatibility to the retired modules. Applying the signature is a different problem, and Microsoft Graph doesn't currently solve it.
Getting connected takes three steps: install the module (Install-Module Microsoft.Graph), authenticate (Connect-MgGraph -Scopes User.Read.All), then run the equivalent cmdlets from the table above. Microsoft's Graph PowerShell get-started guide covers the full setup.
Timeline of Microsoft 365 changes
Date | Activity |
March 2024 | Azure AD and MSOnline PowerShell modules deprecated (Microsoft Tech Community announcement) |
March 2025 | Azure AD and MSOnline PowerShell modules fully retired |
October 1, 2026 | EWS blocked by default in Exchange Online (Microsoft Learn: EWS deprecation) |
April 1, 2027 | EWS full shutdown |
Does Microsoft Graph have an API for managing Outlook email signatures?
A scripted signature does two jobs: read employee data from the directory, then apply a signature to the mailbox. The move to Microsoft Graph changes the first job and leaves the second one stranded.
The directory job has a clear path forward. Queries that pulled names, titles, and departments through the retired modules can be rewritten in Microsoft Graph PowerShell and will keep working. That's finite work: update the queries, test, redeploy.
The applying job is where a script actually runs out of road. When EWS is blocked by default on October 1, 2026, ahead of full retirement in April 2027, the one programmatic route some tools used to read and write Outlook signatures closes. Because Microsoft Graph has no signature endpoint, nothing replaces it. The one native option that survives, Set-MailboxMessageConfiguration, still sets an Outlook on the web signature, but its SignatureHTML parameter stops applying once Outlook roaming signatures are turned on, now the default in many cloud tenants.
Tip
Microsoft Graph API currently doesn't support managing email signatures directly. Per Microsoft's own guidance, signatures are stored by the Outlook client rather than in the mailbox settings Graph can reach, which is why no Graph endpoint exists for this function.
That upkeep is already costly before any of these changes land. In Exclaimer's State of Business Email 2025 research, 35% of IT teams named email signature management one of their two most time-consuming tasks. A maintained signature script is an in-house build, and it carries the running cost of one.
Can you still manage Microsoft 365 email signatures with PowerShell?
Partly. Two native methods survive the transition: Set-MailboxMessageConfiguration and Exchange transport rules, but each has real limits and both leave the upkeep on IT.
Set-MailboxMessageConfiguration sets the Outlook on the web signature one mailbox at a time, and you can script it across users. The constraint is scope: it governs Outlook on the web rather than desktop Outlook, and it stops applying once Outlook roaming signatures are turned on.
An Exchange transport rule takes the other approach, appending an HTML disclaimer to outgoing mail at the server so it reaches every user at once. The disclaimer lands at the bottom of the entire thread instead of under the latest reply; it doesn't appear in the sender's Sent Items, and it can't reliably pull per-user details or inline photos into a designed layout.
Neither method delivers a consistent, on-brand email signature that renders the same everywhere and updates itself from the directory. Exclaimer's State of Business Email 2025 report found that 80% of organizations still rely on manual methods or user self-service, and only 18% use centralized management.
Go deeper: PowerShell's limits for email signatures
For an in-depth look at where the scripted approach falters, see our guide to the limitations of PowerShell for email signature management.

How do I manage Microsoft 365 email signatures without PowerShell scripts?
A maintained signature script is a small in-house build, and the past two years show how exposed that build is to Microsoft's roadmap.
According to Exclaimer's Build vs Buy research, 71% of in-house IT builds are eventually abandoned. Signature scripts fit that pattern closely. They start as a few tidy lines, then accumulate edge cases, dependencies, and rewrites every time the platform underneath them moves.
A managed platform changes where that work lands. Rather than a script that reads the directory and writes to each mailbox, a dedicated email signature management platform handles the whole job itself. Exclaimer's Directory Sync pulls the data fields from Microsoft Entra ID automatically, and Cloud deployment applies signatures server-side, keeping rendering consistent across desktop Outlook, Outlook on the web, and mobile without a script involved. When Microsoft retires a module or an API, absorbing that change becomes the vendor's job instead of a weekend of rework for your team.
Exclaimer has done this for more than 25 years, since building the first email signature software in 2001, and Exclaimer's cloud solution now manages email signatures for over 80,000 organizations. IT keeps full control of policy and deployment while delegating design and content to marketing or HR, with no scripts to rewrite when the platform shifts.
"This is a case where the API roadmap hasn't caught up with how signatures actually get set. IT teams should plan around that gap now, not wait for Microsoft to close it."

Microsoft platform change | Scripted approach | Exclaimer's cloud solution |
Azure AD and MSOnline PowerShell retirement | Rewrite directory queries in Microsoft Graph PowerShell | Directory data syncs automatically |
EWS retirement in 2026 | Lose the programmatic route for reading and writing signatures | Doesn't depend on EWS |
Outlook roaming signatures enabled | Set-MailboxMessageConfiguration stops applying | Not affected by the cmdlet's behavior |
New Outlook and other clients | Test and adjust for each client | Rendering managed centrally and kept consistent |
What is the best way to centrally manage email signatures in Microsoft 365?
The scripted route to Microsoft 365 email signatures still works in places, and every platform change narrows where those places are.
If you run a handful of mailboxes and your email signatures rarely change, keeping a script going may be fine for now. For most organizations, the maintenance only grows: directory queries to rebuild, native methods losing ground, and a fresh round of testing with every platform shift.
A managed platform takes that work off IT's plate and keeps email signatures consistent while Microsoft's tooling keeps moving. The real decision is whether your team keeps maintaining the scripts or hands the problem to something built to absorb these changes for you.
Key takeaway
After October 2026, PowerShell scripts can no longer programmatically set Outlook signatures via EWS, and Microsoft Graph API still lacks native signature management support. Take email signatures off the maintenance list with a free trial of Exclaimer.










