125 lines
4.8 KiB
Markdown
Executable File
125 lines
4.8 KiB
Markdown
Executable File
# Windows troubleshooting
|
|
|
|
## Частые проблемы
|
|
|
|
### `Run this script from an elevated PowerShell session`
|
|
|
|
- Откройте PowerShell через `Run as administrator`.
|
|
- Проверьте, что UAC не понизил токен.
|
|
|
|
### Задачи созданы, но watcher'ы не стартуют
|
|
|
|
- Убедитесь, что пользователь реально вошёл в интерактивную сессию.
|
|
- Проверьте задачу `ActivityWatch Launch [...]` в Task Scheduler.
|
|
- Запустите вручную:
|
|
|
|
```powershell
|
|
Start-ScheduledTask -TaskName 'ActivityWatch Launch [CONTOSO_user01]'
|
|
```
|
|
|
|
- Если доменный логон ещё ни разу не происходил на хосте, сначала выполните вход этим пользователем.
|
|
|
|
### Collector не видит URL
|
|
|
|
- Скрипт работает через UI Automation и foreground window.
|
|
- Некоторые браузеры/страницы могут скрывать адресную строку или блокировать UIA.
|
|
- Проверьте лог `C:\ProgramData\ActivityWatch-Phase2\logs\browser-domains-<user>.log`.
|
|
- Убедитесь, что активное окно — поддерживаемый браузер: Edge, Chrome, Brave, Vivaldi, Opera, Firefox.
|
|
|
|
### Сервер недоступен
|
|
|
|
- Проверьте TCP-доступ:
|
|
|
|
```powershell
|
|
Test-NetConnection aw.example.local -Port 5600
|
|
```
|
|
|
|
- Проверьте локально API:
|
|
|
|
```powershell
|
|
Invoke-WebRequest http://aw.example.local:5600/api/0/info
|
|
```
|
|
|
|
- Если нужен HTTPS reverse proxy, задайте `-ServerScheme https`.
|
|
|
|
### Неправильная категоризация домена
|
|
|
|
- Проверьте содержимое `C:\ProgramData\ActivityWatch-Phase2\web-category-rules.json`.
|
|
- Пользовательские правила должны быть валидным JSON.
|
|
- Один и тот же домен лучше определять только в одной категории.
|
|
- После изменения правил достаточно перезапустить collector или задачу пользователя:
|
|
|
|
```powershell
|
|
Stop-Process -Name powershell -ErrorAction SilentlyContinue
|
|
Start-ScheduledTask -TaskName 'ActivityWatch Launch [CONTOSO_user01]'
|
|
```
|
|
|
|
### ACL сломаны или пользователи удалили runtime-файлы
|
|
|
|
- Запустите:
|
|
|
|
```powershell
|
|
.\windows\hardening-recovery.ps1 -RepairPackage
|
|
```
|
|
|
|
- Если сервер и пользователи уже есть в `deployment-config.json`, дополнительные параметры не нужны.
|
|
|
|
### Ошибка `InvalidVariableReferenceWithDrive` (в строке `Server: http://...`)
|
|
|
|
Симптом:
|
|
|
|
- деплой падает на выводе URL сервера с ошибкой о недопустимой ссылке на переменную.
|
|
|
|
Решение:
|
|
|
|
- обновить скрипты до версии, где используется `${ServerScheme}` в строке вывода;
|
|
- перезалить `deploy-single-user.ps1` / `deploy-domain-users.ps1` на целевой хост.
|
|
|
|
### Ошибка `LogonType InteractiveToken` при регистрации задач
|
|
|
|
Симптом:
|
|
|
|
- `Register-ActivityWatchUserTasks` падает с ошибкой преобразования enum для `LogonType`.
|
|
|
|
Решение:
|
|
|
|
- использовать версию `ActivityWatch.Windows.Common.psm1`, где `LogonType` задан как `Interactive`;
|
|
- повторно запустить deploy/hardening после обновления модуля.
|
|
|
|
## Диагностика
|
|
|
|
Проверить задачи:
|
|
|
|
```powershell
|
|
Get-ScheduledTask -TaskName 'ActivityWatch*' | Select-Object TaskName, State
|
|
```
|
|
|
|
Проверить процессы в пользовательской сессии:
|
|
|
|
```powershell
|
|
Get-Process aw-watcher-afk, aw-watcher-window -ErrorAction SilentlyContinue |
|
|
Select-Object ProcessName, Id, SessionId, StartTime
|
|
```
|
|
|
|
Проверить collector:
|
|
|
|
```powershell
|
|
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
|
|
```
|
|
|
|
Проверить конфиг:
|
|
|
|
```powershell
|
|
Get-Content C:\ProgramData\ActivityWatch-Phase2\deployment-config.json -Raw
|
|
```
|
|
|
|
## Когда запускать hardening/recovery
|
|
|
|
- После ручной чистки задач.
|
|
- После неудачного обновления ActivityWatch.
|
|
- После переноса сервера на другой host/port.
|
|
- После обновления списка пользователей.
|
|
- После изменения кастомных правил, если нужен централизованный repair pass.
|