7.5 KiB
Executable File
7.5 KiB
Executable File
Windows deployment
Состав пакета
windows/deploy-single-user.ps1— развёртывание для одного пользователя.windows/deploy-domain-users.ps1— массовое развёртывание по списку пользователей.windows/deploy-ensemble.ps1— orchestration-скрипт полного цикла (deploy + hardening + validation).windows/hardening-recovery.ps1— повторная регистрация задач, ACL и recovery-loop.windows/validate-deployment.ps1— машинная проверка состояния и JSON-отчёт.windows/browser-domains-native-collector.ps1— native collector доменов браузера с категоризацией.windows/dlp-endpoint-signals-collector.ps1— phase-2 collector (clipboard/USB/print signals).windows/web-category-rules.example.json— пример кастомных правил категоризации.windows/dlp-policy.example.json— пример DLP-политики (phase-1: alerting incidents).
Что делает пакет
- Ставит
aw-watcher-afkиaw-watcher-windowиз официального Windows ZIP ActivityWatch. - Копирует browser-domain collector в
C:\ProgramData\ActivityWatch. - Копирует DLP policy в
C:\ProgramData\ActivityWatch\dlp-policy.json. - Создаёт per-user задачи
ActivityWatch Launch [...]с запуском при логоне. - Создаёт системную задачу
ActivityWatch Recovery, которая циклически перезапускает per-user launch tasks. - Применяет ACL к
C:\Program Files\ActivityWatch,C:\ProgramData\ActivityWatchи каталогу логов. - Не содержит хардкодов инфраструктуры: сервер, домен, список пользователей и правила передаются параметрами.
- Корректно регистрирует задачи через
-LogonType Interactive(совместимо с Windows Server, гдеInteractiveTokenне поддерживается).
Предпосылки
- Windows 10/11 или Windows Server с PowerShell 5.1+.
- Запуск из elevated PowerShell.
- Доступ до ActivityWatch Server по
host:port. - Пользователи домена должны реально входить на хост интерактивно.
- Если интернет недоступен, заранее скачайте ActivityWatch ZIP и передайте
-PackageZipPath.
Single-user deploy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
.\windows\deploy-single-user.ps1 `
-ServerHost aw.example.local `
-ServerPort 5600 `
-TargetUser 'CONTOSO\svc.activity.user01' `
-CustomRulesPath .\windows\web-category-rules.example.json `
-CustomPolicyPath .\windows\dlp-policy.example.json
Локальный пользователь:
.\windows\deploy-single-user.ps1 `
-ServerHost aw-gateway.internal `
-ServerPort 5600 `
-TargetUser '.\operator01'
Оффлайн-установка из локального ZIP:
.\windows\deploy-single-user.ps1 `
-ServerHost aw.example.local `
-TargetUser 'CONTOSO\user01' `
-PackageZipPath C:\Temp\activitywatch-v0.13.2-windows-x86_64.zip
Multi-user / domain deploy
Поддерживаются:
-Users user1,user2-Users 'CONTOSO\user1','CONTOSO\user2'-UserListPath .\users.txt-UserListPath .\users.csv
TXT-формат:
# comments are ignored
user01
user02
user03
CSV-формат: колонка User, Username, SamAccountName или Login.
Пример:
.\windows\deploy-domain-users.ps1 `
-ServerHost aw.example.local `
-ServerPort 5600 `
-Domain CONTOSO `
-UserListPath C:\Temp\aw-users.txt `
-CustomRulesPath C:\Temp\web-category-rules.json `
-CustomPolicyPath C:\Temp\dlp-policy.json
Если список уже содержит DOMAIN\user, параметр -Domain не нужен.
Рекомендуемый phased rollout (изолированный профиль)
Для безопасного параллельного запуска рядом с legacy-инсталляцией используйте отдельные пути:
.\windows\deploy-domain-users.ps1 `
-ServerHost 10.10.10.13 `
-ServerPort 5600 `
-Domain SHARKON2025 `
-Users user2,user3,user4,user5 `
-InstallRoot 'C:\Program Files\ActivityWatch-Phase2-u2u5' `
-StateRoot 'C:\ProgramData\ActivityWatch-Phase2-u2u5' `
-CustomRulesPath C:\Deploy\AWatch-rus\windows\web-category-rules.example.json `
-CustomPolicyPath C:\Deploy\AWatch-rus\windows\dlp-policy.example.json
Single-user pilot в таком же стиле:
.\windows\deploy-single-user.ps1 `
-ServerHost 10.10.10.13 `
-ServerPort 5600 `
-TargetUser 'SHARKON2025\user1' `
-InstallRoot 'C:\Program Files\ActivityWatch-Phase2' `
-StateRoot 'C:\ProgramData\ActivityWatch-Phase2-user1' `
-CustomRulesPath C:\Deploy\AWatch-rus\windows\web-category-rules.example.json `
-CustomPolicyPath C:\Deploy\AWatch-rus\windows\dlp-policy.example.json
Ensemble deploy (production workflow)
.\windows\deploy-ensemble.ps1 `
-ServerHost aw.example.local `
-ServerPort 5600 `
-Domain CONTOSO `
-Users user1,user2,user3,user4,user5 `
-CustomPolicyPath C:\Temp\dlp-policy.json `
-ValidateAfterDeploy
Итоговый отчёт:
C:\ProgramData\ActivityWatch\ensemble-report-YYYYMMDD-HHMMSS.json
Категоризация доменов
- Встроенные категории покрывают базовые рабочие, нейтральные и личные домены.
- Для кастомизации скопируйте
windows/web-category-rules.example.jsonи отредактируйте домены. - Передайте файл через
-CustomRulesPath; он будет сохранён какC:\ProgramData\ActivityWatch\web-category-rules.json. - Пользовательские правила имеют приоритет над встроенными.
Структура после установки
C:\Program Files\ActivityWatch— бинарники watcher'ов.C:\ProgramData\ActivityWatch\deployment-config.json— итоговая конфигурация.C:\ProgramData\ActivityWatch\launch-watchers.ps1— per-user launcher.C:\ProgramData\ActivityWatch\recovery-loop.ps1— system recovery loop.C:\ProgramData\ActivityWatch\browser-domains-native-collector.ps1— runtime collector.C:\ProgramData\ActivityWatch\dlp-endpoint-signals-collector.ps1— runtime endpoint collector.C:\ProgramData\ActivityWatch\dlp-policy.json— активная DLP-политика.C:\ProgramData\ActivityWatch\logs\— логи collector'а.
Для phased rollout те же файлы формируются в каталоге StateRoot, переданном параметром.
Повторный прогон
- Скрипты идемпотентны: переустанавливают задачи и обновляют runtime-файлы.
- Предыдущая установка ActivityWatch бэкапится в
C:\ProgramData\ActivityWatch\backups\install-YYYYMMDD-HHMMSS. - Для жёсткого восстановления запускайте
windows/hardening-recovery.ps1.