A PowerShell script for external customers who have provisioned a Cloud PC from the Windows 365 Dev Ready Image and want to remove all of the bundled third-party developer tools from their machine.
After Node.js is uninstalled, the script also reinstalls GitHub Copilot CLI in its standalone form so the copilot command keeps working without Node.js.
- Python 3.13 (MSI + the
C:\Python313install directory) - Node.js LTS (winget package)
- nvm-windows (
%ProgramData%\nvmand the%ProgramFiles%\nodejssymlink) - oh-my-posh (
%ProgramFiles%\oh-my-posh) and the Cascadia Code / Cascadia Mono Nerd Font variants it installs (registry + font files) - uv tools (
%ProgramData%\UVTools) - Ubuntu WSL distribution (VHDX, install folder, and
HKCU\Software\Microsoft\Windows\CurrentVersion\Lxssregistry keys, including the default-user entry) - Tool entries added to the machine
PATH - The
oh-my-poshblocks in the Windows Terminalsettings.jsonand the PowerShellMicrosoft.PowerShell_profile.ps1files for every local user
After Node.js is removed, the script reinstalls the standalone GitHub Copilot CLI via winget (GitHub.Copilot) and patches the existing npm shims (%ProgramData%\npm\copilot.ps1 and copilot.cmd) to point at the standalone executable. This keeps the copilot command — and the Start Menu shortcut — working without Node.js.
- Windows PowerShell 5.1 or PowerShell 7+
- Run as Administrator (the script enforces this)
- Internet access (winget needs it for the Copilot CLI reinstall)
- A reboot is recommended after the script completes (font cache,
PATH, and WSL changes do not all take effect until next sign-in)
From an elevated PowerShell window:
cd DevReadyImage-Uninstaller
.\Uninstall-ThirdPartyTools.ps1The script:
- Scans the machine and prints a removal plan of everything it would touch.
- Asks you to confirm (
Y/N) before changing anything. - Runs each removal step, printing one section per item.
- If Node.js was removed, reinstalls Copilot CLI standalone and verifies
copilot.exeis onPATH.
A full PowerShell transcript of every run is written to:
%TEMP%\Uninstall-ThirdPartyTools_<yyyyMMdd_HHmmss>.log
Attach this file when reporting issues.
- The script deletes any
Microsoft.PowerShell_profile.ps1that referencesoh-my-poshrather than editing it. Back the file up first if you have custom content you want to keep. - The Ubuntu removal calls
wsl --shutdownbefore deleting the VHDX so the file is not locked. If the delete still fails, sign out and re-run. - Some MSI components (Python in particular) must be uninstalled in a specific order; the script handles this with a 3-pass sort, but a non-zero MSI exit code on the first pass is normal and not fatal.
- The Copilot CLI reinstall step is skipped if Node.js was not actually present (nothing to fix up).