Skip to content

Feature/tss offline rescue wrapper#131

Open
jdickson289 wants to merge 7 commits into
masterfrom
feature/tss-offline-rescue-wrapper
Open

Feature/tss offline rescue wrapper#131
jdickson289 wants to merge 7 commits into
masterfrom
feature/tss-offline-rescue-wrapper

Conversation

@jdickson289

Copy link
Copy Markdown
Collaborator

Powershell wrapper script to allow TSS to run against nested VM disk to collect logs.

jdickson289 and others added 2 commits May 9, 2026 14:56
…ssessment script

Adds two new pre-upgrade checks to Windows_OSUpgrade_Assessment_Validation.ps1:

1. Get-LegacyDriverBlockers: Scans the Services registry for known legacy
   VMware/ghost hardware drivers (vmmouse, vm3dmp, flpydisk, vmhgfs, vmrawdsk,
   vmusbmouse, vmvss, vmscsi, vmxnet) that are set to load (Start <= 3).
   These drivers cause IPU to fail with 0xC1900101-0x50016 when Windows Setup
   boots into SafeOS and encounters hardware unsupported by the Azure Hyper-V host.

2. Get-GlobalFlagStatus: Detects GlobalFlag enabled in Session Manager
   (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager). When set, this
   forces Windows Setup into PageHeap/debug mode, throttling memory operations
   and causing IPU to time out and roll back.

Both checks output [Failed] checklist items with inline remediation guidance:
- Disable (not Uninstall) legacy devices in Device Manager before retrying IPU
- Remove GlobalFlag via reg delete and reboot before retrying IPU

Addresses scenario: lift-and-shift Azure VMs from VMware/on-premises environments.
Related ADO: #35892966

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Windows PowerShell wrapper to collect troubleshooting artifacts from an offline (attached) OS disk in a rescue-VM scenario, with an option to run TSS on the rescue VM; additionally extends the existing Windows OS upgrade assessment script with extra IPU blocker checks.

Changes:

  • Introduces Invoke-TSSOfflineRescueWrapper.ps1 to collect offline Windows logs/hives and optionally run TSS on the rescue VM.
  • Adds documentation for the new offline rescue wrapper usage and parameters.
  • Enhances OS upgrade assessment validation with legacy driver and GlobalFlag detection.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

File Description
RunCommand/Windows/Windows_OSUpgrade_Assessment_Validation/Windows_OSUpgrade_Assessment_Validation.ps1 Adds legacy driver + GlobalFlag checks intended to flag additional in-place-upgrade blockers.
RunCommand/Windows/TSSOfflineRescueWrapper/Invoke-TSSOfflineRescueWrapper.ps1 New wrapper script for offline artifact collection and optional on-rescue TSS execution.
RunCommand/Windows/TSSOfflineRescueWrapper/readme.md Usage examples and parameter documentation for the new wrapper script.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread RunCommand/Windows/TSSOfflineRescueWrapper/Invoke-TSSOfflineRescueWrapper.ps1 Outdated
Comment thread RunCommand/Windows/TSSOfflineRescueWrapper/Invoke-TSSOfflineRescueWrapper.ps1 Outdated
}
}

# --- Run legacy driver and GlobalFlag checks (server IPU blocker detection) ---
Comment on lines +36 to +39
# ---- Legacy driver and GlobalFlag detection ----------------------------------
function Get-LegacyDriverBlockers {
# Known legacy VMware / ghost hardware drivers that cause 0xC1900101-0x50016
$knownBlockers = @('vmmouse', 'vm3dmp', 'flpydisk', 'vmhgfs', 'vmrawdsk', 'vmusbmouse', 'vmvss', 'vmscsi', 'vmxnet')
jdickson289 and others added 5 commits June 12, 2026 13:40
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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.

2 participants