Preciso executar um script que requer privilégios de administrador para modificar a parte HKLM do registro e arquivos/pastas do sistema.
Mas também preciso interagir com a parte HKCU do registro.
O script deve ser executado a partir de uma conta regular. Há uma conta administrativa separada para ações privilegiadas.
Usar a conta de administrador não tem o mesmo acesso ao registro de usuário regular e à pasta de perfil.
Existe uma maneira de iniciar um prompt de comando elevado usando um usuário comum, fornecendo credenciais de administrador, mas mantendo o ambiente de usuário comum?
Obrigado
Até onde eu sei, não. A elevação via UAC nunca concede privilégios – ela só permite que a conta recupere seus privilégios "completos" que normalmente teria sem o UAC. Então, se o usuário não for um Admin, então ele não é um Admin e mudar para um usuário diferente para esse processo se torna necessário.
Sua abordagem mais fácil pode ser dividir o script em duas partes e fazer com que a parte não elevada faça edições de HKCU – ou, se for absolutamente necessário, passe seu SID para a parte elevada para que ela possa acessar seu HKCU por
HKEY_USERS\$sid\
meio dele. (Dependendo do idioma em que o script elevado é escrito, ele pode usar a API de Serviços de Terminal para determinar o nome de usuário e o SID do usuário conectado.)