67 lines
1.8 KiB
PowerShell
67 lines
1.8 KiB
PowerShell
# PowerShell Script to Reset Tailscale on Windows
|
|
# Works even if Tailscale service is not present
|
|
|
|
function Get-TailscalePath {
|
|
$pathsToCheck = @(
|
|
"$env:ProgramFiles\Tailscale\tailscale.exe",
|
|
"$env:ProgramFiles(x86)\Tailscale\tailscale.exe",
|
|
"$env:LOCALAPPDATA\Tailscale\tailscale.exe"
|
|
)
|
|
foreach ($path in $pathsToCheck) {
|
|
if (Test-Path $path) {
|
|
return $path
|
|
}
|
|
}
|
|
return $null
|
|
}
|
|
|
|
$tailscalePath = Get-TailscalePath
|
|
|
|
if (-not $tailscalePath) {
|
|
Write-Warning "Tailscale CLI not found on this system. Skipping CLI commands..."
|
|
} else {
|
|
Write-Host "Found Tailscale CLI at $tailscalePath"
|
|
& "$tailscalePath" logout
|
|
}
|
|
|
|
# Stop service if exists
|
|
$service = Get-Service -Name "Tailscale" -ErrorAction SilentlyContinue
|
|
if ($service) {
|
|
Write-Host "Stopping Tailscale service..."
|
|
Stop-Service Tailscale -Force
|
|
} else {
|
|
Write-Warning "Tailscale service not found, skipping stop."
|
|
}
|
|
|
|
# Remove state file if present
|
|
$statePath = "C:\ProgramData\Tailscale\tailscaled.state"
|
|
if (Test-Path $statePath) {
|
|
Remove-Item $statePath -Force
|
|
Write-Host "Removed tailscaled.state"
|
|
}
|
|
|
|
# Remove appdata folders
|
|
$localApp = "$env:LOCALAPPDATA\Tailscale"
|
|
$roamingApp = "$env:APPDATA\Tailscale"
|
|
|
|
foreach ($folder in @($localApp, $roamingApp)) {
|
|
if (Test-Path $folder) {
|
|
Remove-Item $folder -Recurse -Force
|
|
Write-Host "Removed folder: $folder"
|
|
}
|
|
}
|
|
|
|
# Restart service if exists
|
|
if ($service) {
|
|
Start-Service Tailscale
|
|
Write-Host "Restarted Tailscale service"
|
|
}
|
|
|
|
# Show prefs if CLI was found
|
|
if ($tailscalePath) {
|
|
& "$tailscalePath" debug prefs
|
|
}
|
|
|
|
Write-Host "`n✅ Tailscale reset complete. If you're using Headscale, run:"
|
|
Write-Host "`ttailscale up --login-server http://headscale.estudiogroup.com:8080"
|