3.5 KiB
3.5 KiB
Windows Deploy Startup Model
Supported startup models
1. Multi-user RDP host
Use this model on SHARKON2025-style hosts with multiple user sessions.
AWatchRusCollectorGuardservice:- runs under
LocalSystem - is the preferred local control plane for collector supervision
- in
shadowmode only publishes state/heartbeat - in
enforcemode starts only session-appropriate collectors/tasks with cooldown and restart budget - publishes
aw-rus-collector-guard_<HOST>
- runs under
ActivityWatch Launch [HOST_user]tasks:AtLogOnInteractiveToken- start only for users that currently have a real Windows session
ActivityWatch Recoverytask:AtStartupSYSTEM- stays enabled even when
AWatchRusCollectorGuardis active - keeps only the global
worktime-session-collectoralive - may re-trigger user launch tasks for managed live or disconnected sessions
- interactive collectors/watcher binaries belong to the user-session path, not to Session 0
Collector ownership in this model:
aw-watcher-afkandaw-watcher-window: user-session onlybrowser-domains-native-collector.ps1: user-session onlyemail-outbound-collector.ps1: user-session onlyfile-operations-collector.ps1: user-session pathdlp-endpoint-signals-collector.ps1: user-session pathworktime-session-collector.ps1: single global process under recovery path- publishes session presence and
process_start/process_stopevents for all visible user sessions, includingDisc - this is session/process telemetry, not a replacement for per-user foreground window watchers
- publishes session presence and
2. Standalone service installer
Use this model on single-user or headless hosts where Task Scheduler per-user orchestration is not the primary control plane.
aw-standalone-service.ps1runs as a loop/service wrapper- Session 0 starts only collectors that are safe headless
- browser/email interactive collectors must not be assumed available from Session 0
Collector ownership in this model:
dlp-endpoint-signals-collector.ps1: allowedfile-operations-collector.ps1: allowedworktime-session-collector.ps1: allowed- still provides session/process telemetry, but not interactive foreground-window truth
browser-domains-native-collector.ps1: not reliable in Session 0email-outbound-collector.ps1: not reliable in Session 0aw-watcher-afk/aw-watcher-window: not a standalone Session 0 primitive
Non-supported mix
Do not mix the two startup models on the same RDP host:
- no permanent standalone-service loop together with per-user launch/recovery tasks
- no blind
Start-ScheduledTaskfor all configured users - no validation rule that treats users without sessions as failed collector startup
- no bot-driven collector recovery as the primary control plane
During migration, AWatchRusCollectorGuard may run in shadow mode beside the existing
recovery task. In enforce mode it becomes the primary control plane; ActivityWatch Recovery
still remains enabled as fallback/bootstrap and must not be disabled by deploy scripts.
Hardening rules
- start launch tasks only for users with real sessions
- treat managed disconnected RDP sessions as real recovery targets when their launch tasks exist
- keep only one global
worktime-session-collector - validate by session-aware expectations, not by “all configured users must currently run”
- use guard heartbeat and bucket freshness as health signals
- keep
deploy_aw_windows.yml,deploy-ensemble.ps1,hardening-recovery.ps1, and installer assumptions aligned