How to uninstall Tailscale on Windows
Tailscale connects this PC to a private mesh network (a tailnet), so removing the app is not the same as leaving the network: the PC can stay listed as a device in your tailnet's admin console until you log out or remove it there. This guide covers Tailscale installed machine-wide from the Tailscale.Tailscale winget package.
Disconnect before you remove the app
Open the Tailscale tray icon and turn networking off, or run tailscale down in a terminal, before quitting.
Log out, or remove the device from the admin console
Uninstalling Tailscale from this PC does not by itself deauthorize the device. Log out from the tray icon, or sign in to your tailnet's admin console and remove the device there. Skipping this step leaves the PC listed as a device other people on your tailnet can still see, even after the app is gone. Remove a device from your tailnet
Quit Tailscale first
Tailscale runs a background service (tailscaled) plus a tray GUI client (tailscale-ipn.exe). Check Task Manager (Ctrl+Shift+Esc) for both before you uninstall.
Remove the app with its own uninstaller
Go to Settings › Apps › Installed apps, find Tailscale, and choose Uninstall, or run:
winget uninstall --id Tailscale.Tailscale
This uninstall needs administrator access, since Tailscale installs machine-wide and runs a Windows service.
Where the data lives
| Location | What it holds | What to do |
|---|---|---|
%ProgramData%\Tailscale |
The node's local state, separate from your tailnet account | Safe to remove once you have logged out or removed the device in the admin console |
%LOCALAPPDATA%\Tailscale |
Small per-user state | Safe to remove |
| Start Menu and Startup shortcuts | Shortcuts to the app | Removed by the uninstaller |
Check the result
Run these read-only commands after the uninstall finishes:
Get-Process tailscaled, tailscale-ipn -ErrorAction SilentlyContinue
winget list --id Tailscale.Tailscale
Test-Path "$env:ProgramData\Tailscale"
Get-Service Tailscale -ErrorAction SilentlyContinue
- No output from
Get-Processonly means this query observed no matching process; a suppressed error leaves the running state unknown. - A completed
winget listquery with no match means the package record is gone; a matching row means the uninstall did not finish. Test-Path "$env:ProgramData\Tailscale"returningTruemeans node state is still on this PC, which most users leave in place unless they are certain they will not reconnect this device.- If
Get-Service Tailscalesucceeds without suppressed errors, no match means the Windows service is gone; a service object means it is still registered.
If you installed it with winget
winget uninstall runs the same MSI uninstall Settings › Apps uses (msiexec /x ... /passive) and removes the service, the program files and the Start Menu and Startup shortcuts; it does not touch %ProgramData%\Tailscale or %LOCALAPPDATA%\Tailscale on its own.
What Mole lists
For Tailscale installed machine-wide from winget:
- The Start Menu and public Startup shortcuts are selected by default.
%ProgramData%\Tailscaleand%LOCALAPPDATA%\Tailscaleare listed but not selected.- A Windows Firewall rule this app registered is reported on the result, never removed.
- Tailscale's MSI entry does not register an install location, so Mole finds the program folder itself through Windows Installer's component records, to size it and offer to quit its processes before removal; that folder is never offered as a leftover to delete, since msiexec already owns it.
HKCU\Software\Tailscale IPN, a small local configuration key, is not listed.
What this test covered
Tested with Tailscale 1.102.4 installed through winget, machine scope, on an ARM64 test VM. The test PC was not signed in to a tailnet, so signed-in device removal was not exercised.
