| Auto_Login | |||||||||||||||||||||||||||
| ** | 2/17/25 | Tailscale | |||||||||||||||||||||||||
| Ver | Auto_Login | ||||||||||||||||||||||||||
| 2/17/25 | |||||||||||||||||||||||||||
| Home | What to expect when switching laptop-brians to Unattended Mode | ||||||||||||||||||||||||||
| Auto_Login.htm | The device will continue to appear in your tailnet as laptop-brians, not a new entry. Its Tailscale IP (100.x.x.x) will remain the same, and any ACLs or device-specific permissions tied to that name will continue to work. | ||||||||||||||||||||||||||
| Misc | The only visible change is that the “User” column in the admin console will show (Windows SYSTEM) instead of the Windows user who originally logged in. | ||||||||||||||||||||||||||
| subnetting | |||||||||||||||||||||||||||
| site-to-site | Clean transition steps using the existing laptop-brians identity | ||||||||||||||||||||||||||
| Troubleshooting | 1. Stay logged in as the user who originally authenticated Tailscale | This ensures the node key is still loaded in memory and can be reused by the SYSTEM service. | |||||||||||||||||||||||||
| Visual Policy Ed | 2. Quit the per‑user Tailscale session (do not log out) | ||||||||||||||||||||||||||
| Glossary | Right‑click the Tailscale tray icon | ||||||||||||||||||||||||||
| Select Quit Tailscale | This shuts down the user session without invalidating the node key. | ||||||||||||||||||||||||||
| 3. Re-open Tailscale and enable Unattended Mode | |||||||||||||||||||||||||||
| Open Tailscale again | |||||||||||||||||||||||||||
| Go to Settings → Run unattended | |||||||||||||||||||||||||||
| Approve the admin prompt | Tailscale will restart as NT AUTHORITY\SYSTEM, automatically reusing the same node key that belonged to laptop-brians. | ||||||||||||||||||||||||||
| 4. Verify the identity stayed intact | |||||||||||||||||||||||||||
| Open PowerShell: | |||||||||||||||||||||||||||
| Code | |||||||||||||||||||||||||||
| tailscale status | |||||||||||||||||||||||||||
| You should still see: | |||||||||||||||||||||||||||
| Code | |||||||||||||||||||||||||||
| laptop-brians | If you check the admin console, the device will still be listed as laptop-brians, but now marked as a system-level device. | ||||||||||||||||||||||||||
| Why this preserves all routes and access | |||||||||||||||||||||||||||
| Tailscale routes, MagicDNS, and ACL permissions are tied to the node key, not the Windows user. Because we never logged out or removed the device, the node key is preserved and the identity stays the same. | |||||||||||||||||||||||||||
| The only actions that would break routes are: | |||||||||||||||||||||||||||
| Clicking Log out inside Tailscale | |||||||||||||||||||||||||||
| Removing the device from the admin console | |||||||||||||||||||||||||||
| Re-authenticating as a different Tailscale user | |||||||||||||||||||||||||||
| You avoided all of those by following this path. | |||||||||||||||||||||||||||
| Quick health check after switching | |||||||||||||||||||||||||||
| These commands confirm everything is still correct: | |||||||||||||||||||||||||||
| Code | |||||||||||||||||||||||||||
| tailscale ip | |||||||||||||||||||||||||||
| tailscale status | |||||||||||||||||||||||||||
| tailscale netcheck | If the Surface was advertising routes (unlikely but possible), check: | ||||||||||||||||||||||||||
| Code | |||||||||||||||||||||||||||
| tailscale status --json | jq '.Self.Routes' | Everything should match what you had before. | ||||||||||||||||||||||||||
| If you want, you can tell me what tailscale status shows now that it’s in Unattended Mode, and I’ll confirm that laptop-brians is fully intact and behaving exactly as expected. | |||||||||||||||||||||||||||
| PS C:\WINDOWS\system32> tailscale status | |||||||||||||||||||||||||||
| 100.82.216.4 laptop-brians mdhvezda@ windows - | |||||||||||||||||||||||||||
| 100.66.25.120 cell-phone-mdh mdhvezda@ android offline | |||||||||||||||||||||||||||
| 100.97.133.77 dtrixie-asus mdhvezda@ linux idle, tx 167244 rx 533220 | |||||||||||||||||||||||||||
| 100.112.157.107 dtrixie-insp mdhvezda@ linux - | |||||||||||||||||||||||||||
| 100.110.215.17 laptop-gert mdhvezda@ windows offline | |||||||||||||||||||||||||||
| 100.124.156.18 laptop-thinkpad mdhvezda@ windows offline | |||||||||||||||||||||||||||
| 100.71.6.64 pc-acemagic mdhvezda@ windows - | |||||||||||||||||||||||||||
| 100.94.241.101 pc-t30 mdhvezda@ linux - | |||||||||||||||||||||||||||
| 100.97.73.57 pc-t3610 mdhvezda@ windows idle, tx 404 rx 364 | |||||||||||||||||||||||||||
| 100.109.48.42 pc-vickie-hp mdhvezda@ windows offline | |||||||||||||||||||||||||||
| 100.100.153.94 pc-wesley mdhvezda@ windows offline | |||||||||||||||||||||||||||
| 100.81.99.59 proxmox-relay-server mdhvezda@ linux active; direct 65.128.253.137:41643, tx 31876004 rx 3741676 | |||||||||||||||||||||||||||
| 100.66.160.52 rpi-bookworm mdhvezda@ linux offline | |||||||||||||||||||||||||||
| 100.111.217.116 rpi4m-dietpi mdhvezda@ linux offline | |||||||||||||||||||||||||||
| 100.99.167.120 rpi4n-trixie mdhvezda@ linux offline | |||||||||||||||||||||||||||
| 100.121.202.29 tablet-mdh mdhvezda@ android offline | |||||||||||||||||||||||||||
| 100.73.216.67 tower mdhvezda@ linux - | |||||||||||||||||||||||||||
| Everything in that output confirms the switch went cleanly: | |||||||||||||||||||||||||||
| laptop-brians is still using the same node key, | |||||||||||||||||||||||||||
| same Tailscale IP (100.82.216.4), | |||||||||||||||||||||||||||
| same ACL identity, | |||||||||||||||||||||||||||
| and it’s now running under SYSTEM. | That’s exactly what we wanted. | ||||||||||||||||||||||||||
| What the status output tells us | |||||||||||||||||||||||||||
| The device name is unchanged → identity preserved | |||||||||||||||||||||||||||
| The IP 100.82.216.4 is unchanged → routes, ACLs, MagicDNS all remain valid | |||||||||||||||||||||||||||
| No “logged out” or “needs login” flags → SYSTEM successfully reused the existing node key | |||||||||||||||||||||||||||
| The device is active → Tailscale is running before login and for all users | |||||||||||||||||||||||||||
| This is the ideal outcome for a shared Surface. | |||||||||||||||||||||||||||
| Quick integrity checks you can run (optional but useful) | |||||||||||||||||||||||||||
| 1. Confirm the daemon is running as SYSTEM | |||||||||||||||||||||||||||
| In PowerShell: | |||||||||||||||||||||||||||
| Code | |||||||||||||||||||||||||||
| Get-Process Tailscale* | Select-Object Name, StartType, Path | |||||||||||||||||||||||||||
| Or check the service: | |||||||||||||||||||||||||||
| Code | |||||||||||||||||||||||||||
| Get-Service Tailscale | |||||||||||||||||||||||||||
| You should see it running as a Windows service, not tied to a user session. | |||||||||||||||||||||||||||
| 2. Confirm MagicDNS and DERP connectivity | |||||||||||||||||||||||||||
| Code | |||||||||||||||||||||||||||
| tailscale netcheck | |||||||||||||||||||||||||||
| You should see: | |||||||||||||||||||||||||||
| “UDP: true” | |||||||||||||||||||||||||||
| “IPv4: yes” | |||||||||||||||||||||||||||
| “Preferred DERP: …” | |||||||||||||||||||||||||||
| 3. Confirm the device is reachable before login | |||||||||||||||||||||||||||
| From another machine: | |||||||||||||||||||||||||||
| Code | |||||||||||||||||||||||||||
| tailscale ping laptop-brians | |||||||||||||||||||||||||||
| If it responds even when the Surface is at the Windows login screen, unattended mode is fully active. | |||||||||||||||||||||||||||
| What’s next | |||||||||||||||||||||||||||
| At this point the Surface is in the best possible configuration for a shared device: always connected, always reachable, and always using the same Tailscale identity. | |||||||||||||||||||||||||||
| Is there anything you want to adjust on laptop-brians now that it’s in unattended mode—like exit node behavior, route advertising, or MagicDNS settings? | |||||||||||||||||||||||||||