Skip to content

Overhaul migration guide: phased playbook + 7 deep-dive articles#12949

Open
SufficientDaikon wants to merge 1 commit intoMicrosoftDocs:mainfrom
SufficientDaikon:docs/migration-guide-overhaul
Open

Overhaul migration guide: phased playbook + 7 deep-dive articles#12949
SufficientDaikon wants to merge 1 commit intoMicrosoftDocs:mainfrom
SufficientDaikon:docs/migration-guide-overhaul

Conversation

@SufficientDaikon
Copy link
Copy Markdown
Contributor

PR Summary

Restructure the Windows PowerShell 5.1 → PowerShell 7 migration story from
a feature overview into an actionable, phased migration playbook with
7 new deep-dive articles covering the top community pain points.

Addresses #12948.

PR Checklist

  • Descriptive Title: This PR's title is a synopsis of the changes
    it proposes.
  • Summary: This PR's summary describes the scope and intent of the
    change.
  • Contributor's Guide: I have read the contributor's guide.
  • Style: This PR adheres to the style guide.

At a glance

The existing migration doc (Migrating-from-Windows-PowerShell-51-to-PowerShell-7.md)
tells readers what PowerShell 7 offers but not how to migrate.
The differences doc is a thorough technical reference but is not
actionable. This PR creates a hub-and-spoke model:

  • Rewrite the existing migration doc as a phased guide
    (assess → install → migrate → validate → rollback)
  • Add 7 deep-dive articles covering real pain points
    backed by community issue data
  • Link to the existing differences doc for technical reference
    (no duplication)

Pain points covered (with issue evidence)

Pain point Evidence Article
Module compatibility confusion PowerShell#4062 (63 comments), #15428 (33 comments) module-compatibility-strategy.md
PSModulePath + OneDrive conflicts PowerShell#15552 (109 comments) module-compatibility-strategy.md
Encoding changes (UTF-8 NoBOM) PowerShell#1995 (201 comments), #707 (22 comments) encoding-changes.md
Remoting endpoint defaults to WinPS PowerShell#11616 (32 comments) Hub article (Phase 4)
Air-gapped network slow startup PowerShell#10983 (58 comments) enterprise-deployment.md
Profile path differences PowerShell#4682 profile-migration.md
Removed cmdlets (WMI, Workflow, EventLog) Referenced in differences doc script-compatibility-audit.md
PSScheduledJob removal Referenced in differences doc scheduled-tasks-automation.md

Files changed

# File Status Description
1 Migrating-from-Windows-PowerShell-51-to-PowerShell-7.md Rewritten Feature overview → phased migration playbook
2 migration/script-compatibility-audit.md New PSScriptAnalyzer scanning, removed cmdlet map, .NET changes, cross-version patterns
3 migration/module-compatibility-strategy.md New Module testing, compatibility layer (bugs + workarounds), PSModulePath conflicts
4 migration/encoding-changes.md New UTF-8 NoBOM defaults, 3 migration strategies, BOM considerations, diagnostic scripts
5 migration/profile-migration.md New Path differences, 3 sharing strategies, OneDrive workaround, common pitfalls
6 migration/enterprise-deployment.md New MSI/SCCM/Intune/winget, air-gapped networks, GPO, CI/CD pipeline updates
7 migration/scheduled-tasks-automation.md New PSScheduledJob replacement, Task Scheduler args, audit + bulk update scripts
8 migration/testing-and-rollback.md New Pester compat, validation checklist, rollback procedures, coexistence timeline
9 differences-from-windows-powershell.md Updated Added TIP box linking to migration guide
10 module-compatibility.md Updated Added Windows module compat table + link to deep-dive
11 overview.yml Updated Added "Migration deep dives" card to landing page
12 toc.yml Updated Added migration subsection with all 7 articles

Total: 12 files, +2,209/-246 lines

Design principles

  1. Hub-and-spoke: migration hub links to deep-dives; never duplicates
    the differences doc
  2. Actionable: every section has concrete steps, scripts, or checklists
  3. Issue-backed: every pain point references real GitHub issues
  4. Style-compliant: passes markdownlint with repo config (100-char
    lines, ATX headers, backtick fences, dash lists, proper name
    capitalization)

Scope and limitations

In scope
Windows-focused migration from WinPS 5.1 to PS 7. All content targets Windows 10, Windows 11, and Windows Server 2016+.
Out of scope
Cross-platform migration (Linux/macOS) — covered by the existing unix-support.md. DSC migration — extensive enough for a separate PR. PowerShell 5.1 end-of-life policy — owned by Microsoft product team.
Intentionally unchanged
differences-from-windows-powershell.md is left as-is except for a TIP box cross-link. It serves as the canonical technical reference; deep-dive articles link into it by section anchor rather than duplicating content.

Restructure the migration story from a feature overview into an
actionable, phased migration playbook (assess → install → migrate →
validate → rollback). Add 7 new deep-dive articles covering the top
community pain points: script auditing, module compatibility, encoding
changes, profile migration, enterprise deployment, scheduled task
automation, and testing/rollback.

Hub-and-spoke architecture: the rewritten migration guide links to
deep-dive articles for details, and every deep-dive links to the
existing differences-from-windows-powershell.md for technical reference
rather than duplicating it.

Fixes MicrosoftDocs#12948

New files:
- whats-new/migration/script-compatibility-audit.md
- whats-new/migration/module-compatibility-strategy.md
- whats-new/migration/encoding-changes.md
- whats-new/migration/profile-migration.md
- whats-new/migration/enterprise-deployment.md
- whats-new/migration/scheduled-tasks-automation.md
- whats-new/migration/testing-and-rollback.md

Updated files:
- whats-new/Migrating-from-Windows-PowerShell-51-to-PowerShell-7.md
- whats-new/differences-from-windows-powershell.md
- whats-new/module-compatibility.md
- whats-new/overview.yml
- toc.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@learn-build-service-prod
Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

✅ No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod
Copy link
Copy Markdown
Contributor

Learn Build status updates of commit 4a72435:

💡 Validation status: suggestions

File Status Preview URL Details
reference/docs-conceptual/whats-new/migration/testing-and-rollback.md 💡Suggestion View (>=powershell-5.1) Details
reference/docs-conceptual/toc.yml ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/differences-from-windows-powershell.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/Migrating-from-Windows-PowerShell-51-to-PowerShell-7.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/migration/encoding-changes.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/migration/enterprise-deployment.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/migration/module-compatibility-strategy.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/migration/profile-migration.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/migration/scheduled-tasks-automation.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/migration/script-compatibility-audit.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/module-compatibility.md ✅Succeeded View (>=powershell-5.1)
reference/docs-conceptual/whats-new/overview.yml ✅Succeeded View (>=powershell-5.1)

reference/docs-conceptual/whats-new/migration/testing-and-rollback.md

  • Line 0, Column 0: [Suggestion: filename-contains-stop-word - See documentation] Stop words like 'a', 'or', 'and', 'the', and 'in' are discouraged in filenames.

For more details, please refer to the build report.

Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant