Commits were merged into target branch
-
4 months ago4 months ago4 months ago4 months ago4 months ago4 months ago4 months ago4 months ago4 months ago4 months ago4 months ago4 months ago
-
| Submitter | Stapel Dev |
| Target | master |
| Source | merge/features-scheduler-welcome |
Assignees
Merge Strategy
Create Merge Commit
Added
-HideFromGalto hide mailbox from Global Address List (Set-Mailbox -HiddenFromAddressListsEnabled).-SkipDirectLicenseFallbackto suppress Graph REST fallback for direct license removal.SkipGroupsnow accepts DisplayName, SMTP address, or ObjectId (AAD Id).GroupDisambiguationconfig inconfig/appsettings.jsonto map ambiguous display names to a unique SMTP or ObjectId.SiteCodeusage across onboarding/offboarding.Microsoft.Graph.Users.Actionsis installed soUpdate-MgUserLicenseis available.GenerateWelcomecolumn and CLI-GenerateWelcomeswitch<TempPassword>auto-injected from onboarding (force change on next sign-in)<ManagerName>auto-resolved fromManagerUPNwhen presentDefaultWelcomeTemplatePath,DefaultWelcomeOutputDirscripts/schedule-onboard.ps1,scripts/schedule-offboard.ps1,scripts/schedule-tenants.ps1config/example.tenants.json-MaxCacheAgeDaysto force rebuild when cache age exceeds the cap (default 30)-AutoRefreshStaleCacheto auto-rebuild when stale (past TTL) but within max age-AllowStaleCacheto use stale cache without prompting when within max ageconfig/appsettings.json:MaxCacheAgeDays,AutoRefreshStaleCache,AllowStaleCache{{Name}}supported alongside legacy<Name>in both welcome DOCX and OOO templates.tools/convert-placeholders.ps1to convert<Name>/<Name>→{{Name}}across.docx,.txt,.html(supports-DryRunand-Backup).Changed
-NoConfirmis fully honored for direct license removal;ShouldProcessprompt bypassed unless-WhatIf.example-onboard.csvthroughout; parameter matrix updated; added guidance for SiteCode and ambiguity remediation.Templatessection under Input Files with OOO + Welcome DOCX; FAQ moved before Troubleshooting; TOC updated and anchors verified.-AutoRefreshStaleCacheor-AllowStaleCacheis used; forces rebuild when older thanMaxCacheAgeDayswith clear age-in-days logging.Set-MgUserLicense(Microsoft.Graph.Users); fall back to REST only if unavailable.Directory.ReadWrite.All(instead ofDirectory.AccessAsUser.All) alongsideUser.ReadWrite.AllandGroup.ReadWrite.All.docs/.word/document.xml, headers, footers, comments/notes (word/footnotes.xml,word/endnotes.xml,word/comments.xml) and drawings (word/drawings/*.xml).<Name>and XML-escaped<Name>placeholders; adds support for{{Name}}format.DefaultSitesCsvfromconfig/appsettings.jsonwhen-SitesCsvis omitted (mirrors onboarding behavior).{{...}}alongside legacy<...>and HTML-escaped forms; sample OOO templates updated.Fixed
-NoConfirmfor direct license removal.Update-MgUserLicense; REST fallback is now optional and skippable.Idis present when removing licenses by explicitly projectingid,assignedLicensesand refetching if needed; resolves emptyUserIderrors.word/document.xmlinside the template zip.<Email>) are detected and replaced.Notes
Docs
docs/scheduling.md.docs/configuration.md(README shows a minimal example and links to the authoritative matrix).docs/templates.md.docs/troubleshooting.md; README now links briefly.{{Placeholder}}; legacy<Placeholder>supported during transition.tools/convert-placeholders.ps1.scripts/generate-welcome.ps1adoptsDefaultSitesCsvwhen-SitesCsvis omitted.