Назад | Перейти на главную страницу

Поведение переменных среды в регистре HKCU \ Volatile Environment

У меня есть сценарий .bat, который запускается для каждого пользователя при входе в систему (копирует сайты исключений Oracle Java). Он копирует файл в:

%userprofile%\appdata\LocalLow\Sun\Java\Deployment\security\exception.sites

К сожалению, это работает слишком хорошо. Иногда он пытается запускаться как LocalSystem или другие системные учетные записи.

Хорошо, давайте запустим это только тогда, когда пользователи домена вошли в систему. Я искал способы выполнить условные проверки перед копированием файла, но я нашел кого-то, намекающего, что% userdomain% также устанавливается для системных учетных записей. Насколько я понимаю, это означает, что при работе таких SID, как S-1-5-18 (LocalSystem), S-1-5-19 (Local Service) и S-1-5-20 (Network Service), они становятся HKCU и, следовательно, может (?) Получить все переменные, которые вы увидите в HKCU \ Неустойчивая среда ключ реестра, а именно переменные среды, такие как

APPDATA
HOMEDRIVE
HOMEPATH
LOCALAPPDATA
LOGONSERVER
USERDNSDOMAIN
USERDOMAIN
USERNAME
USERPROFILE

Это означает, что проверка% USERDOMAIN% была бы бессмысленной, поскольку системные учетные записи также наследуют эти значения. Однако я не нашел официальной документации (в MSDN или в других местах), подтверждающей, что система учетные записи унаследуют некоторые или все вещи, которые унаследует «нормальная» учетная запись.

Итак, теперь у меня есть исходная проблема, но мне также интересно узнать о Volatile Environment и о том, можно ли ее использовать для решения проблемы или нет.

  1. Есть ли очевидный способ проверить реальных пользователей домена, которых я не замечаю? Включение реальных (пользовательских) локальных учетных записей тоже можно, но не обязательно.
  2. Действительно ли системные учетные записи наследуют все переменные, которые я видел бы в Volatile Environment для других пользователей?
  3. Дополнительный вопрос: откуда берутся переменные Volatile Environment?