Comportamento de variáveis de ambiente na chave reg do HKCU \ Volatile Environment

1

Eu tenho um script .bat que é executado para cada usuário no login (copia Oracle Java Exception Sites). Copia um arquivo para:

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

Infelizmente, funciona muito bem. Às vezes, ele tenta ser executado como LocalSystem ou outras contas do sistema.

Ok, então vamos executar isso apenas quando os usuários do domínio estiverem conectados. Eu procurei maneiras de fazer verificações condicionais antes de copiar o arquivo, mas encontrei alguém insinuando que% userdomain% também está definido para as contas do sistema. Pelo que entendi, isso significa que quando SIDs como S-1-5-18 (LocalSystem), S-1-5-19 (Serviço Local) e S-1-5-20 (Serviço de Rede) estão em execução, eles se tornam HKCU e, portanto, pode (?) Obter todas as variáveis que você veria em uma chave de registro HKCU \ Volatile Environment , ou seja, variáveis de ambiente, como

APPDATA
HOMEDRIVE
HOMEPATH
LOCALAPPDATA
LOGONSERVER
USERDNSDOMAIN
USERDOMAIN
USERNAME
USERPROFILE

Isso significa que a verificação de% USERDOMAIN% seria inútil, porque as contas do sistema também herdam esses valores. No entanto, não encontrei nenhuma documentação oficial (no MSDN ou de outra forma) que confirme se as contas do sistema herdariam algumas ou todas as coisas que uma conta "normal" herdaria.

Então agora eu tenho o problema original, mas também estou curioso em profundidade sobre o Ambiente Volátil e se ele pode realmente ser usado para resolver o problema ou não.

  1. Existe uma maneira óbvia de verificar se há usuários de domínio reais que eu estou negligenciando? A inclusão de contas locais reais (do usuário) também seria boa, mas não necessária.
  2. As contas do sistema realmente herdam todas as variáveis que eu veria no Ambiente volátil para outros usuários?
  3. Pergunta bônus: De onde as variáveis do ambiente volátil são geradas?
por uniquegeek 15.06.2017 / 21:30

0 respostas