> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cyberdesk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Clear All Cyberdriver Traces

> One-liner PowerShell script to fully remove Cyberdriver before a clean reinstall

If Cyberdriver ever gets into a bad state, for example it says it is "already running", fails to start, or a self-update or reinstall leaves broken remnants behind, the fastest fix is to wipe every trace of it and then run the install script again.

The one-liner below stops any running Cyberdriver processes and services, removes both the legacy Python folders (`.cyberdriver`) and the Cyberdriver 1.x beta install (Program Files, services, registry, shortcuts, scheduled tasks), cleans up the user `PATH`, and drops the Windows Defender exclusion. It is safe to run whether you installed legacy Cyberdriver, the 1.x beta, or both.

<Steps>
  <Step title="Run the cleanup one-liner in PowerShell">
    Open PowerShell as Administrator (Administrator is needed to remove the 1.x beta service and machine-wide entries) and paste this single command:

    ```powershell theme={null}
    Get-Process -Name "Cyberdriver","cyberdriver" -EA SilentlyContinue | Stop-Process -Force -EA SilentlyContinue; Get-Service -Name "Cyberdriver","Cyberdriver Service" -EA SilentlyContinue | ForEach-Object { Stop-Service $_.Name -Force -EA SilentlyContinue; sc.exe delete $_.Name }; @("$env:USERPROFILE\.cyberdriver","$env:LOCALAPPDATA\.cyberdriver","$env:APPDATA\.cyberdriver","$env:ProgramFiles\Cyberdriver","${env:ProgramFiles(x86)}\Cyberdriver","$env:APPDATA\Cyberdriver","$env:APPDATA\Cyberdesk","$env:LOCALAPPDATA\Cyberdriver","$env:LOCALAPPDATA\Cyberdesk","$env:ProgramData\Cyberdriver","$env:ProgramData\Cyberdesk","C:\Windows\System32\config\systemprofile\AppData\Roaming\Cyberdriver","C:\Windows\System32\config\systemprofile\AppData\Roaming\Cyberdesk","C:\Windows\System32\config\systemprofile\AppData\Local\Cyberdriver","C:\Windows\System32\config\systemprofile\AppData\Local\Cyberdesk") | Where-Object { Test-Path $_ } | ForEach-Object { Remove-Item -LiteralPath $_ -Recurse -Force -EA SilentlyContinue }; foreach ($scope in 'User','Machine') { try { $p=[Environment]::GetEnvironmentVariable('Path',$scope); if($p){ [Environment]::SetEnvironmentVariable('Path', (($p -split ';' | Where-Object { $_ -and $_ -inotmatch '\\\.?cyberd(river|esk)' }) -join ';'), $scope) } } catch {} }; Remove-MpPreference -ExclusionPath "$env:LOCALAPPDATA\.cyberdriver\_pyinstaller" -EA SilentlyContinue; @("HKCU:\Software\Cyberdriver","HKCU:\Software\Cyberdesk","HKLM:\Software\Cyberdriver","HKLM:\Software\Cyberdesk","HKLM:\Software\WOW6432Node\Cyberdriver","HKLM:\Software\WOW6432Node\Cyberdesk","HKCU:\Software\Classes\cyberdriver","HKLM:\Software\Classes\cyberdriver") | Where-Object { Test-Path $_ } | ForEach-Object { Remove-Item $_ -Recurse -Force -EA SilentlyContinue }; Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*","HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" -EA SilentlyContinue | Where-Object { $_.GetValue("DisplayName") -like "*Cyberdriver*" -or $_.GetValue("DisplayName") -like "*Cyberdesk*" } | ForEach-Object { Remove-Item $_.PSPath -Recurse -Force -EA SilentlyContinue }; Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs","$env:ProgramData\Microsoft\Windows\Start Menu\Programs" -Filter "*Cyberdriver*" -Recurse -EA SilentlyContinue | Remove-Item -Force -EA SilentlyContinue; Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs","$env:ProgramData\Microsoft\Windows\Start Menu\Programs" -Filter "*Cyberdesk*" -Recurse -EA SilentlyContinue | Remove-Item -Force -EA SilentlyContinue; Get-ChildItem "$env:USERPROFILE\Desktop","$env:PUBLIC\Desktop" -Filter "*Cyberdriver*.lnk" -EA SilentlyContinue | Remove-Item -Force -EA SilentlyContinue; Get-ChildItem "$env:USERPROFILE\Desktop","$env:PUBLIC\Desktop" -Filter "*Cyberdesk*.lnk" -EA SilentlyContinue | Remove-Item -Force -EA SilentlyContinue; Get-ScheduledTask -TaskName "*Cyberdriver*" -EA SilentlyContinue | Unregister-ScheduledTask -Confirm:$false; Get-ScheduledTask -TaskName "*Cyberdesk*" -EA SilentlyContinue | Unregister-ScheduledTask -Confirm:$false; Write-Host "Cyberdriver cleanup complete! Restart if an 'already running' message persists, then run the install script again." -ForegroundColor Green
    ```
  </Step>

  <Step title="Reboot if prompted">
    If the cleanup finishes but you still see an "already running" message, reboot the machine to release any lingering handles.
  </Step>

  <Step title="Reinstall Cyberdriver">
    Run the install script again from the [Cyberdriver Quickstart](/cyberdriver/quickstart). Use the [Legacy Cyberdriver](/cyberdriver/legacy-cyberdriver) installer for the stable Python client, or the 1.x beta installer if you need the Windows service path.
  </Step>
</Steps>

<Note>
  This is a full uninstall. It removes saved configuration, including the machine fingerprint, so the machine will re-register in the Cyberdesk dashboard as a new desktop after you reinstall and rejoin.
</Note>

## What the one-liner removes

* Running `cyberdriver` / `Cyberdriver` processes.
* The Cyberdriver 1.x beta Windows service (`Cyberdriver`, `Cyberdriver Service`).
* Legacy Python folders: `%USERPROFILE%\.cyberdriver`, `%LOCALAPPDATA%\.cyberdriver`, `%APPDATA%\.cyberdriver`.
* 1.x beta install and data folders under `Program Files`, `AppData`, `ProgramData`, and the system profile.
* Cyberdriver entries from both the user and machine `PATH` (the legacy `.cyberdriver` folder and the 1.x beta `Program Files\Cyberdriver` install directory).
* The Windows Defender exclusion for the legacy PyInstaller directory.
* Registry keys under `HKCU`/`HKLM` for Cyberdriver and Cyberdesk, plus uninstall entries.
* Start menu and desktop shortcuts.
* Scheduled tasks created by Cyberdriver (including self-update restart tasks).
