Summary

You started this module with an estate and a vague intention. You're ending it with a classified inventory and a path assigned to every row.

What you did

  • Justified the migration in operational terms: Windows PowerShell 5.1 is in maintenance mode, the LCM isn't coming to PowerShell 7, new investment lands in Microsoft DSC, and cross-platform is table stakes. You also named the situations where waiting is the right call.
  • Classified the four artifact types — configuration scripts, compiled MOFs, script-based resources, class-based resources — and learned that each migrates differently.
  • Built a migration inventory by joining the classic Get-DscResource view with both adapter views, so that the gap between them becomes a concrete list rather than a suspicion.
  • Created the Bindery legacy estate and applied it under the LCM, establishing the baseline that every migration path must reproduce.
  • Assigned a path to each artifact using a decision flow that starts with "is it still used?" and ends with the four signals that justify a native rewrite.

Key takeaways

The inventory is the deliverable. A migration without one is a series of surprises.

  • The 5.1 adapter discovers script-based and class-based resources. The PowerShell 7+ adapter discovers class-based only. That single asymmetry drives most migration decisions.
  • SuggestedPath from an inventory script is a starting point, not a verdict. Ownership, usage, and platform plans override it.
  • Path A and Path B move the orchestration layer without touching resource code. That decoupling is what makes the deeper rewrites safe to do incrementally.
  • Module path confusion between hosts causes more false "broken resource" reports than any other single issue. Check $env:PSModulePath in both hosts first.

Command reference

Command Purpose
Get-DscResource | Select-Object Name, ModuleName, ImplementationDetail Classic enumeration; run in Windows PowerShell 5.1
dsc resource list --adapter Microsoft.Adapter/WindowsPowerShell What the 5.1 adapter can discover
dsc resource list --adapter Microsoft.Adapter/PowerShell What the PowerShell 7+ adapter can discover
dsc resource list --adapter <name> --output-format json Machine-readable form for inventory scripts
Test-DscConfiguration -Detailed Confirm the LCM baseline before migrating

Learn more

  • The Microsoft DSC Handbook, Chapter 11 — the full written treatment of this material
  • The Microsoft DSC Handbook, Chapter 6 — how the PowerShell adapters work internally
  • Microsoft DSC documentation

Next module

You know what you own and where each piece is going. Module 2 walks all four paths against the Bindery estate, starting with the least invasive one: translating a Configuration script into a configuration document while the resource code underneath stays byte-for-byte identical.

> EOF