From 1f26a92d64879f6dbb9348b0454c9df1ae09225e Mon Sep 17 00:00:00 2001 From: Code-Barby Date: Sun, 19 Jul 2026 00:55:29 +0200 Subject: [PATCH] =?UTF-8?q?doc:=20VM302=20pyautogui=20persistent=20als=20m?= =?UTF-8?q?cp=20=E2=80=94=20ONLOGON+AutoLogon+Watchdog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MCP-AUTOMATION-PERSISTENCE-VM302.md | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 MCP-AUTOMATION-PERSISTENCE-VM302.md diff --git a/MCP-AUTOMATION-PERSISTENCE-VM302.md b/MCP-AUTOMATION-PERSISTENCE-VM302.md new file mode 100644 index 0000000..fd5268e --- /dev/null +++ b/MCP-AUTOMATION-PERSISTENCE-VM302.md @@ -0,0 +1,51 @@ +# VM302 — pyautogui-server persistent als user mcp (2026-07-19) + +## Ziel +`pyautogui-server` (Screen-Automation via HTTP) muss auf VM302 IMMER laufen — nach Reboot, Crash, Session-Ende. Läuft als user **mcp** in interaktiver Session (nicht matthias, nicht Session 0). + +## Drei Bausteine + +### 1. Scheduled Task `pyautogui-mcp` (der Server selbst) +```cmd +schtasks /Create /TN "pyautogui-mcp" ^ + /TR "D:\Python311\python.exe C:\Users\mcp\pyautogui-server-v2.py" ^ + /SC ONLOGON /RU mcp /RP "" /RL HIGHEST /IT /F +``` +- **`/IT` ist essentiell** — sonst läuft der Prozess in Session 0 (services) und Screenshots kommen leer (21 Bytes) zurück +- ONLOGON feuert jedes Mal wenn mcp sich anmeldet + +### 2. AutoLogon für mcp (damit mcp nach Reboot automatisch angemeldet ist) +Registry `HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon`: +- `AutoAdminLogon` = `"1"` +- `DefaultUserName` = `"mcp"` +- `DefaultPassword` = `""` (String, Klartext) +- `DefaultDomainName` = Hostname +- `AutoLogonCount` = `0` (DWord, unbegrenzt) + +**Sicherheits-Note:** Passwort Klartext in Registry. Mit Sysinternals `autologon.exe` als LSA-Secret ablegbar (später härten). + +### 3. Watchdog `pyautogui-mcp-watchdog` +```cmd +schtasks /Create /TN "pyautogui-mcp-watchdog" ^ + /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Users\mcp\pyautogui-watchdog.ps1" ^ + /SC MINUTE /MO 5 /RU SYSTEM /RL HIGHEST /F +``` +Watchdog-Script prüft alle 5 Min `http://localhost:3336/health` (mit Bearer-Token), restartet die Task bei Fehler. Log: `C:\Users\mcp\pyautogui-watchdog.log`. + +## Endpoint +- Base URL lokal: `http://localhost:3336` +- Via Tailscale: `http://100.104.5.57:3336` +- Auth-Header: `Authorization: Bearer sk-pyautogui-vm302-e7f9a3b1c4d8e5f2a9b6c1d4e7f0a3b6` +- Health-Response MUSS `"user":"mcp"` enthalten — sonst läuft's in falscher Session + +## Endpoints +- `GET /screenshot` — PNG raw +- `POST /click` — {x, y} +- `POST /type` — {text} +- `POST /hotkey` — {keys: [...]} +- `POST /goto` — {url} +- `POST /batch` — [actions] +- `GET /health` + +## RDP Wrapper Kompatibilität +Parallel-Sessions gehen: mcp (Console/AutoLogon Session 1) + matthias (RDP Session 2/3) gleichzeitig. RDP Wrapper ist installiert und funktioniert.