UAC Remote Restrictions — «Access is denied» при удалённом доступе под локальным админом
Статья объясняет, почему локальная учётная запись администратора не может работать с административными ресурсами (
ADMIN$,C$), WMI и удалённым управлением на компьютере вне домена, и как это штатно решается параметромLocalAccountTokenFilterPolicy.
Симптомы
При подключении к недоменному компьютеру по сети под локальной учётной записью с правами администратора:
- не открывается административная общая папка:
\\host\C$,\\host\ADMIN$— «Отказано в доступе»; - ошибка в Veeam при добавлении хоста или установке агента:
Access is denied. --tr:Error code: 0x00000005; - не работают удалённые запросы WMI,
Invoke-Command, установка MSI по сети; - при этом локально на этом же компьютере та же учётная запись имеет полные права администратора.
Под доменной учётной записью администратора всё это работает — проблема проявляется только с локальными.
Почему так происходит
Механизм называется UAC Remote Restrictions и появился ещё в Windows Vista. При сетевом входе локальной учётной записи (не доменной) система выдаёт ей отфильтрованный маркер доступа: административная группа из маркера убирается, остаются права обычного пользователя. Повышение прав (UAC) при сетевом входе невозможно — согласия на экране никто не подтвердит, поэтому Windows просто не даёт админских прав вовсе.
Смысл ограничения — защита от бокового перемещения в сети: если на многих машинах одинаковый локальный пароль администратора, компрометация одной не даёт автоматически админский доступ ко всем остальным.
Доменные учётные записи под это ограничение не попадают: их администраторские права проверяются контроллером домена.
Решение: LocalAccountTokenFilterPolicy
Параметр реестра отключает фильтрацию маркера для сетевых входов локальных учётных записей.
На целевом компьютере (к которому подключаемся) от имени администратора:
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' `
-Name 'LocalAccountTokenFilterPolicy' -Value 1 -PropertyType DWord -Force
Тот же параметр через reg.exe:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ^
/v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
Значения:
| Значение | Поведение |
|---|---|
0 или параметр отсутствует |
Ограничение включено (по умолчанию): локальные админы получают отфильтрованный маркер при сетевом входе |
1 |
Ограничение отключено: локальные админы получают полный маркер удалённо |
Перезагрузка не требуется — параметр применяется к новым сетевым подключениям. Если доступ всё ещё не появился, разорвите закэшированные сессии:
net use * /delete /y
Проверка
С машины, откуда подключаемся:
# доступ к административному ресурсу
Test-Path \\HOST\C$
# WMI
Get-CimInstance Win32_ComputerSystem -ComputerName HOST -Credential (Get-Credential)
Риски и альтернативы
Параметр ослабляет защиту от бокового перемещения в сети. Включайте его только там, где это действительно нужно, и обязательно в сочетании с уникальными паролями локальных администраторов на каждой машине.
Более безопасные варианты, если они применимы:
- ввести компьютер в домен и работать под доменной учётной записью — ограничение на неё не действует (Ввод компьютеров в домен);
- использовать встроенную учётную запись
Administrator(RID 500) — на неё фильтрация маркера не распространяется; именно поэтому Veeam требует именно её для недоменных машин (см. Добавление недоменного компьютера в Veeam B&R); - для парка машин — управлять локальными паролями централизованно (LAPS/Windows LAPS), тогда риск от включённого параметра минимален.