Comment puis-je exécuter un script en tant qu'administrateur dans un conteneur Windows

14

J'essaie d'installer Windows Enterprise WDK sur une image Docker basée sur windowsservercore . L'application s'installe par décompression et je l'ai déjà fait et j'ai validé cette image dans Docker. Maintenant, je dois exécuter un script qui définit les variables d'environnement. Selon les instructions d'installation d'Enterprise WDK, je dois exécuter ce script en tant qu'administrateur. Je l'ai fait directement sur ma machine de bureau et cela fonctionne. Dans le Docker Container, l'utilisateur de connexion par défaut est

PS C:\> whoami
user manager\containeradministrator

J'ai essayé d'activer le compte administrateur.

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

J'essaie de démarrer un shell en tant qu'administrateur, mais l'utilisateur ne change pas.

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

Et si j'exécute mon script, il n'a pas défini l'une des valeurs d'environnement spécifiées dans le script.

Suggestions?

Daniel
la source
2
Avez-vous réussi à résoudre ce problème?
fons
1
Vous pourriez avoir un problème avec l' UAC , pourriez-vous le désactiver temporairement? Runas tel que vous l'avez écrit ne permet pas d'ouvrir une invite de commande élevée, voir ici . J'essaierais NirCmd :-)
simlev
1
Comment vous connectez-vous au conteneur? RDP? PowerShell à distance?
harrymc
1
@harrymc Exécution du conteneur en mode interactif.
Daniel
1
Étant donné que le compte Administrateur local est un compte très spécial, une connexion peut être requise. Pourquoi ne pouvez-vous pas utiliser un autre compte administrateur "normal"?
harrymc

Réponses:

6

Votre problème n'est pas du tout des droits insuffisants. Consultez cet article .

L'UAC n'est pas disponible dans Server Core, car il s'agit d'une interface en ligne de commande uniquement , ne dispose pas d'IE ou ne prend pas en charge les applications utilisateur. De plus, pour utiliser l'UAC avec l'invite de commande, vous devez disposer de l'Explorateur Shell pour pouvoir cliquer sur Démarrer, cliquer avec le bouton droit sur Invite de commandes et sélectionner Exécuter en tant qu'administrateur, ce qui n'est évidemment pas possible sur Server Core.

Vous exécutez déjà des commandes en tant qu'administrateur, sinon des commandes comme

net user administrator Pa$$w0rd

échouerait inévitablement.

Votre problème est autre chose.

Voyez ici . Windows Server Core n'est pas pris en charge pour l'installation de WDK. À propos de la définition des variables d'environnement sur Server Core, consultez cette réponse .

Vous devriez jeter un oeil à ce script et à ce qu'il fait réellement, s'il utilise des commandes SET ou SETX ou autre chose et là vous pouvez trouver un indice pourquoi les variables ne sont pas définies correctement. Il se peut qu'ils soient définis de façon permanente mais pas dans votre fenêtre actuelle.

Vojtěch Dohnal
la source
2
J'avais remplacé les setcommandes en setxessayant de déboguer d'autres problèmes. C'est ce qui m'a conduit à essayer d'obtenir de vrais privilèges d'administrateur.
Daniel