Files
AWatch-rus/docs/windows/validation.md
T

4.0 KiB
Executable File

Windows validation

Автоматическая проверка (рекомендуется)

$report = .\windows\validate-deployment.ps1 `
  -ConfigPath C:\ProgramData\ActivityWatch\deployment-config.json
$report | ConvertTo-Json -Depth 12

Критерий:

  • overallOk = true

Базовая проверка после развёртывания

1. Проверить установленные файлы

Test-Path 'C:\Program Files\ActivityWatch\aw-watcher-afk\aw-watcher-afk.exe'
Test-Path 'C:\Program Files\ActivityWatch\aw-watcher-window\aw-watcher-window.exe'
Test-Path 'C:\ProgramData\ActivityWatch\browser-domains-native-collector.ps1'
Test-Path 'C:\ProgramData\ActivityWatch\deployment-config.json'

Ожидаемый результат — везде True.

2. Проверить задачи

Get-ScheduledTask -TaskName 'ActivityWatch*' |
  Select-Object TaskName, Author, State

Ожидаемо:

  • по одной задаче ActivityWatch Launch [...] на пользователя;
  • одна задача ActivityWatch Recovery.

3. Проверить процессы после логина пользователя

Get-Process aw-watcher-afk, aw-watcher-window -ErrorAction SilentlyContinue |
  Select-Object ProcessName, SessionId, StartTime

И collector:

Get-CimInstance Win32_Process |
  Where-Object { $_.Name -in 'powershell.exe', 'pwsh.exe' -and $_.CommandLine -match 'browser-domains-native-collector.ps1' } |
  Select-Object ProcessId, SessionId, CommandLine

4. Проверить сетевую связность

Test-NetConnection aw.example.local -Port 5600
Invoke-WebRequest http://aw.example.local:5600/api/0/info

Если используется HTTPS:

Invoke-WebRequest https://aw.example.local/api/0/info

5. Проверить buckets на сервере

После открытия нескольких сайтов в браузере на сервере должны появиться:

  • aw-watcher-window_<hostname>
  • aw-watcher-web-edge_<hostname> или другой browser bucket
  • aw-detmir-web-category_<hostname>

Проверка через API:

Invoke-WebRequest http://aw.example.local:5600/api/0/buckets | Select-Object -ExpandProperty Content

Проверка категоризации

  1. Откройте сайт из кастомного правила.
  2. Подождите PollSeconds + PulseSeconds.
  3. Проверьте category bucket на сервере.
  4. Убедитесь, что поля domain, rootDomain, category, categoryGroup, categoryRule заполнены.

Проверка восстановления

  1. Завершите aw-watcher-afk.exe и aw-watcher-window.exe у тестового пользователя.
  2. Подождите до RecoveryIntervalSeconds.
  3. Убедитесь, что per-user launch task стартовала процессы заново.

Ручной запуск recovery:

Start-ScheduledTask -TaskName 'ActivityWatch Recovery'

Проверка ACL

icacls 'C:\Program Files\ActivityWatch'
icacls 'C:\ProgramData\ActivityWatch'
icacls 'C:\ProgramData\ActivityWatch\logs'

Ожидаемо:

  • SYSTEM и Administrators имеют F;
  • Users имеет RX на install/state;
  • Users имеет M на logs.

Критерий готовности к массовому развёртыванию

  • Установка проходит без ручного редактирования скриптов.
  • Все параметры инфраструктуры передаются снаружи.
  • Повторный запуск не ломает текущую установку.
  • Recovery восстанавливает запуск watcher'ов после остановки.
  • Collector пишет domain/category события без расширений браузера.