diff --git a/docs/windows/deployment.md b/docs/windows/deployment.md index 23b3a2d..64f582a 100755 --- a/docs/windows/deployment.md +++ b/docs/windows/deployment.md @@ -9,6 +9,10 @@ - `windows/validate-deployment.ps1` — машинная проверка состояния и JSON-отчёт. - `windows/browser-domains-native-collector.ps1` — native collector доменов браузера с категоризацией. - `windows/dlp-endpoint-signals-collector.ps1` — Windows/RDP collector (clipboard/USB/print signals). +- `windows/file-operations-collector.ps1` — collector файловых операций (create/delete/rename/archive hints). +- `windows/worktime-session-collector.ps1` — collector RDP-сессий и активности. +- `windows/install-standalone-service.ps1` — standalone установка агента как Windows Service (без Task Scheduler). +- `windows/aw-standalone-service.ps1` — service wrapper для поддержания collector-процессов. - `windows/web-category-rules.example.json` — пример кастомных правил категоризации. - `windows/dlp-policy.example.json` — пример DLP-политики (phase-1: alerting incidents). @@ -27,6 +31,14 @@ - Корректно регистрирует задачи через `-LogonType Interactive` (совместимо с Windows Server, где `InteractiveToken` не поддерживается). - Поддерживает отключение шумных watcher'ов через `-AfkEnabled:$false` и `-WindowEnabled:$false`. +### Standalone InnoSetup (без Ansible, без Task Scheduler) + +- InnoSetup запускает `install-standalone-service.ps1`. +- Мастер спрашивает только `ServerHost` и `ServerPort`. +- Создаётся сервис `AWatchRusStandaloneAgent` (auto-start, restart-on-failure). +- Сервис управляет collector-скриптами и держит по одной рабочей копии каждого коллектора. +- `deployment-config.json` формируется в `C:\ProgramData\AWatch-rus\deployment-config.json`. + Важно: - Скриншот делается только при DLP-инциденте (`Send-DlpIncidentHeartbeat`), не по таймеру и не на обычной активности. diff --git a/docs/windows/troubleshooting.md b/docs/windows/troubleshooting.md index 5cc9482..8798153 100755 --- a/docs/windows/troubleshooting.md +++ b/docs/windows/troubleshooting.md @@ -88,6 +88,35 @@ Start-ScheduledTask -TaskName 'ActivityWatch Launch [CONTOSO_user01]' ## Диагностика +### Standalone service не работает + +Проверить сервис: + +```powershell +Get-Service AWatchRusStandaloneAgent +sc.exe query AWatchRusStandaloneAgent +``` + +Перезапуск: + +```powershell +Restart-Service AWatchRusStandaloneAgent +``` + +Лог service wrapper: + +```powershell +Get-Content C:\ProgramData\AWatch-rus\logs\standalone-agent-service.log -Tail 200 +``` + +Проверить дочерние collector-процессы: + +```powershell +Get-CimInstance Win32_Process | + Where-Object { $_.Name -eq 'powershell.exe' -and $_.CommandLine -like '*AWatch-rus*collector*.ps1*' } | + Select-Object ProcessId, SessionId, CommandLine +``` + Проверить задачи: ```powershell diff --git a/windows/installkit/innosetup/BUILD.md b/windows/installkit/innosetup/BUILD.md index a432490..8ddda3c 100644 --- a/windows/installkit/innosetup/BUILD.md +++ b/windows/installkit/innosetup/BUILD.md @@ -25,11 +25,21 @@ The resulting installer `AWatch-rus-InstallKit.exe` is written to the same direc ./build_with_wine.sh ``` -## Install-time parameters +## Install-time parameters (Standalone agent mode) -The installer wizard asks for: +The installer wizard asks only for: -- `ServerHost` / `ServerPort` (defaults to our AW server `10.10.10.13:5600`) -- `Users` (CSV) -- Whether to use offline payload (auto-enabled when the ZIP exists at compile time) -- Whether to validate after deploy (`-ValidateAfterDeploy`, report written to `C:\ProgramData\AWatch-rus\ensemble-report-*.json`) +- `ServerHost` / `ServerPort` (defaults to `10.10.10.13:5600`) + +All other values are taken from defaults embedded in installer scripts. + +## Runtime mode + +- Installer runs `windows\install-standalone-service.ps1`. +- A Windows service `AWatchRusStandaloneAgent` is created with auto-start and restart-on-failure. +- Service wrapper (`windows\aw-standalone-service.ps1`) keeps DLP collectors running: + - `browser-domains-native-collector.ps1` + - `dlp-endpoint-signals-collector.ps1` + - `file-operations-collector.ps1` + - `email-outbound-collector.ps1` (if present) + - `worktime-session-collector.ps1` (if present)