feat: autostart as a service + separate password setup (set-password.bat)

- set-password.bat: one-time password setup -> writes webvnc.conf (HASH + VNC_PASSWORD), syncs UltraVNC via ensure-vnc-password.ps1; if the 'web-vnc' task is installed, restarts it (elevated) to reload the new password, skipping restart when the password is unchanged.
- run.bat: no longer prompts for the password; reads it from webvnc.conf (asks to run set-password.bat first if absent). Also clears --spawn-command (not just --spawn) when 5900 is already listening, to avoid spawning a 2nd VNC server.
- scripts/autostart-run.bat: non-interactive launcher for the scheduled task (reads webvnc.conf, finds only a LOCAL VNC server, never downloads at boot).
- scripts/install-autostart.bat / uninstall-autostart.bat: register/remove a 'web-vnc' scheduled task (ONSTART, SYSTEM, HIGHEST) via schtasks.
- scripts/restart-autostart.bat: restart the task to apply a new password; checks whether web-vnc.exe is running (stop+start, or just start).
- .gitignore: ignore webvnc.conf (secret).
- AGENTS.md / README.md: document the autostart flow, set-password.bat, the new scripts, and that the running gateway must be restarted to apply a password change.
This commit is contained in:
Codex
2026-08-05 15:23:58 +03:00
parent 0779b4327c
commit 754f77a8d0
9 changed files with 427 additions and 62 deletions
+26
View File
@@ -0,0 +1,26 @@
@echo off
REM ============================================================
REM uninstall-autostart.bat - remove the web-vnc startup task.
REM Deletes the scheduled task "web-vnc" created by
REM install-autostart.bat. Requires administrator rights
REM (auto-elevates).
REM ============================================================
cd /d "%~dp0"
net session >nul 2>nul
if errorlevel 1 (
echo Requesting administrator rights ...
powershell -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
exit /b
)
set "TASK=web-vnc"
echo Removing scheduled task "%TASK%" ...
schtasks /Delete /TN "%TASK%" /F
if errorlevel 1 (
echo [error] Could not remove the task (maybe it does not exist).
pause
exit /b 1
)
echo Done.
pause