Skip to content

Instantly share code, notes, and snippets.

@1mm0rt41PC
Last active May 21, 2024 07:12
Show Gist options
  • Save 1mm0rt41PC/f1ed27561fcdbfdedaac0eaeb672f5ea to your computer and use it in GitHub Desktop.
Save 1mm0rt41PC/f1ed27561fcdbfdedaac0eaeb672f5ea to your computer and use it in GitHub Desktop.
This script allows Tailscale install even in a hardened context where WPAD service is disabled
sc.exe stop tailscale
taskkill /f /im tailscale.exe
taskkill /f /im tailscale-ipn.exe
taskkill /f /im tailscaled.exe
sc.exe delete tailscale
rm -Force -Recurse -ErrorAction SilentlyContinue "C:\Program Files\Tailscale"
$l=curl.exe -k -L https://pkgs.tailscale.com/stable/ 2>$null | out-string | Select-String -Pattern '"tailscale-setup-([0-9\.]+)-amd64.msi"'
$version = $l.Matches[0].Groups[1].Value
$output=$env:TMP
rm -Force -ErrorAction SilentlyContinue "$output\tailscale*.*"
curl.exe -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" -L https://pkgs.tailscale.com/stable/tailscale-setup-${version}-amd64.msi --output $output\tailscale-setup-latest.msi 2>$null
msiexec.exe /a "$output\tailscale-setup-latest.msi" /qb 'TARGETDIR="C:\Program Files\"' /quiet
ping -n 10 127.0.0.1
rm -Force -ErrorAction SilentlyContinue "C:\Program Files\tailscale-setup-latest.msi"
if ( -not ($env:PATH).Contains('Tailscale') ){
$env:PATH += ';C:\Program Files\Tailscale'
[Environment]::SetEnvironmentVariable("PATH", $env:PATH, [System.EnvironmentVariableTarget]::User);
}
sc.exe create tailscale binPath= "C:\Program Files\Tailscale\tailscaled.exe" displayName= TailScale start= auto
sc.exe start tailscale
& 'C:\Program Files\Tailscale\tailscale.exe' up
$Trigger = New-ScheduledTaskTrigger -AtLogOn
$Action = New-ScheduledTaskAction -Execute "C:\Program Files\Tailscale\tailscale-ipn.exe"
$Setting = New-ScheduledTaskSettingsSet -RestartOnIdle -StartWhenAvailable -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Get-ChildItem C:\Users | where { $_.Name -ne 'Public' } | %{
$usr=$_.Name
Unregister-ScheduledTask -TaskName "Tailscale-ipn.exe-$usr" -Confirm:$false -ErrorAction SilentlyContinue
Register-ScheduledTask -TaskName "Tailscale-ipn.exe-$usr" -Trigger $Trigger -User $usr -Action $Action -Settings $Setting -Force > $null
Start-ScheduledTask -TaskName "Tailscale-ipn.exe-$usr"
}
& 'C:\Program Files\Tailscale\tailscale.exe' status
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment