Real Enager script updates - #489
Merged
DeanCron merged 2 commits intoJul 22, 2026
Merged
Conversation
- Delete-YammerGroups -> Delete-EngageGroups: migrated to Graph
DELETE /beta/employeeExperience/communities/{id}
- Add-YammerGroupAdmins -> Add-EngageGroupAdmins: migrated to Graph
POST /groups/{id}/owners/$ref
- Get-YammerGroupInfo -> Get-EngageGroupInfo: migrated to Graph
(communities list + group member count + group owners). Dropped
LastMessageAt column, which has no Graph equivalent.
- Export-YammerNetworkData -> Export-EngageNetworkData,
Export-YammerFiles -> Export-EngageFiles: renamed only (endpoints
remain the current, Microsoft-documented Yammer export APIs).
Removed the -IncludeExternalNetworks parameter/option, and added
runtime warnings/README notes about native-mode export limitations
and the March 13, 2026 admin center retirement (MC1230453).
- Updated all associated READMEs with new Graph permissions, auth
model, and breaking-change notes for the legacy numeric Yammer
group ID vs. Graph community/group ID formats.
- Live-tested Delete-EngageGroups and Add-EngageGroupAdmins against
a disposable test tenant app registration.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ation
- Delete-YammerUsers -> Delete-EngageUsers: rewritten from a full Yammer
account deletion (legacy REST API DELETE /users/{id}.json) to a Graph-based
removal of users from a specific M365 group/community
(DELETE /groups/{id}/members/{id}/$ref). This is a scope change, not a
like-for-like swap - there's no Graph API to delete a Yammer user account
outright, so the script and README now make clear it only removes access
to the group(s) listed in the CSV, not the account itself. CSV format
changed from a single UserID column to GroupID + Email per row.
- Delete-AllCommunityPosts: no code changes - confirmed there is no Graph
equivalent for reading/deleting community message content (the Graph
employeeExperience/communities API only covers CRUD and membership).
Documented this permanent legacy-API dependency in the script header and
README so it's clear no further migration is possible today.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
🛰️ PR Sweeper reportRisk: 🟠 MEDIUM · Security gate: ✅ passing · Files: 22 🔒 Automated guardrails (authoritative)
🤖 Dual-model AI review (advisory)AI review unavailable for this run (models not reachable or no diff). Guardrails above are unaffected.
The automated guardrails are authoritative and gate the security status. The AI review is advisory and never auto-merges. Thanks for contributing to FastTrack! 🛩️ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Audited all Viva Engage/Yammer scripts in scripts/ for outdated/deprecated API usage and migrated what's migratable to Microsoft Graph.
Migrated to Microsoft Graph (app-only, client-credentials auth)
⚠️ Breaking change: legacy numeric Yammer group IDs don't map to Graph community/group IDs — existing input CSVs need regenerating (see each README).
Delete-YammerGroups → Delete-EngageGroups — DELETE /beta/employeeExperience/communities/{id}
Add-YammerGroupAdmins → Add-EngageGroupAdmins — POST /groups/{id}/owners/$ref
Get-YammerGroupInfo → Get-EngageGroupInfo — communities list + group member count + group owners (dropped LastMessageAt, no Graph equivalent)
Renamed only (endpoints unchanged, still current/documented)
Export-YammerNetworkData → Export-EngageNetworkData — removed -IncludeExternalNetworks (not supported for native-mode networks); added runtime warning for -IncludeFiles All
Export-YammerFiles → Export-EngageFiles — added native-mode limitation warning
Both reference the confirmed March 13, 2026 admin center retirement (MC1230453).
Rewritten (scope change)
Delete-YammerUsers → Delete-EngageUsers — previously deleted the user's Yammer account entirely via the legacy API; no Graph equivalent exists for that. Rewritten to remove a user from a specific M365 group/community (DELETE /groups/{id}/members/{id}/$ref). CSV format changed from UserID to GroupID + Email.
No migration possible
Delete-AllCommunityPosts — Graph's communities API has no endpoint for reading/deleting message content. Left on the legacy Yammer REST API; documented as a permanent dependency until Microsoft ships one.
All scripts validated via PowerShell AST parsing. Delete-EngageGroups and Add-EngageGroupAdmins were also live-tested end-to-end against a test tenant.