Como posso executar um script como administrador dentro de um contêiner do Windows

14

Estou tentando instalar o Windows Enterprise WDK em uma imagem do Docker com base no windowsservercore . O aplicativo é instalado descompactando e eu já fiz isso e enviei essa imagem para o Docker. Agora eu preciso executar um script que defina variáveis ​​de ambiente. De acordo com as instruções de instalação do Enterprise WDK, devo executar este script como administrador. Eu fiz isso diretamente na minha máquina desktop e funciona arquivo. No Docker Container, o usuário de login padrão é

PS C:\> whoami
user manager\containeradministrator

Tentei ativar a conta de administrador.

PS C:\> net user administrator /active:yes
The command completed successfully.
PS C:\> net user administrator Pa$$w0rd
The command completed successfully.

Eu tento iniciar um shell como administrador, mas o usuário não muda.

PS C:\> runas /user:administrator powershell
Enter the password for administrator:
Attempting to start powershell as user "C597C386289A\administrator" ...
PS C:\> whoami
user manager\containeradministrator

E se eu executar o meu script, ele não definirá nenhum dos valores de ambiente especificados no script.

Sugestões?

Daniel
fonte
2
Você conseguiu resolver isso?
fons 28/03
1
Você pode ter um problema com o UAC , pode desativá-lo temporariamente? As runas que você escreveu não permitem abrir um prompt de comando elevado, veja aqui . Eu daria uma chance ao NirCmd :-)
simlev 28/03
1
Como você está se conectando ao contêiner? RDP? PowerShell remoto?
harrymc
1
@harrymc Executando o contêiner no modo interativo.
315 Daniel
1
Como a conta do administrador local é uma conta muito especial, um login pode ser necessário. Por que você não pode usar outra conta de administrador "normal"?
harrymc

Respostas:

6

Seu problema não é de direitos suficientes. Veja este artigo .

O UAC não está disponível no Server Core, pois é uma interface apenas de linha de comando , não possui o IE ou suporta aplicativos de usuário. Além disso, para usar o UAC com o prompt de comando, você precisa do Shell do Explorer para poder clicar em Iniciar, clique com o botão direito do mouse em Prompt de Comando e selecione executar como administrador, o que obviamente não é possível no Server Core.

Você já está executando comandos como administrador, caso contrário, comandos como

net user administrator Pa$$w0rd

falharia inevitavelmente.

Seu problema é outra coisa.

Veja aqui . O Windows Server Core não é suportado na instalação do WDK. Sobre a configuração de variáveis ​​de ambiente no Server Core, consulte esta resposta .

Você deve dar uma olhada nesse script e no que ele realmente faz, se ele usa comandos SET ou SETX ou qualquer outra coisa e lá você pode encontrar uma pista de por que as variáveis ​​não estão sendo definidas corretamente. Pode ser que eles estejam definidos permanentemente, mas não na sua janela atual.

Vojtěch Dohnal
fonte
2
Eu substituí os setcomandos com a setxtentativa de depurar outros problemas. Foi isso que me levou a tentar obter privilégios reais de administrador.
Daniel