У меня есть сценарий .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 и о том, можно ли ее использовать для решения проблемы или нет.