Как я могу запустить скрипт от имени администратора в контейнере Windows


14

Я пытаюсь установить Windows Enterprise WDK на образ Docker на основе windowsservercore . Приложение устанавливается путем распаковки, и я уже сделал это и передал этот образ в Docker. Теперь мне нужно запустить скрипт, который устанавливает переменные среды. В соответствии с инструкциями по установке Enterprise WDK, я должен запустить этот скрипт от имени администратора. Я сделал это прямо на моем настольном компьютере, и он работает файл. В контейнере Docker пользователь для входа по умолчанию

PS C:\> whoami
user manager\containeradministrator

Я попытался включить учетную запись администратора.

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

Я пытаюсь запустить оболочку от имени администратора, но пользователь не меняется.

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

И если я запускаю свой скрипт, он не может установить ни одно из значений среды, указанных в скрипте.

Предложения?


2
Вам удалось решить это?
Fons

1
У вас может быть проблема с UAC , вы можете временно отключить ее? Runas, как вы написали, не позволяет открыть командную строку с повышенными привилегиями, см. Здесь . Я бы попробовал NirCmd :-)
simlev

1
Как вы подключаетесь к контейнеру? RDP? Удаленный PowerShell?
harrymc

1
@harrymc Запуск контейнера в интерактивном режиме.
Даниил

1
Поскольку локальная учетная запись администратора - это особая учетная запись, может потребоваться вход в систему. Почему вы не можете использовать другую «обычную» учетную запись администратора?
harrymc

Ответы:


6

Ваша проблема не является недостаточными правами на всех. Смотрите эту статью .

UAC недоступен в Server Core, поскольку он является интерфейсом только для командной строки , не имеет IE или поддержки пользовательских приложений. Кроме того, чтобы использовать UAC с командной строкой, необходимо иметь оболочку обозревателя, чтобы вы могли нажать кнопку «Пуск», щелкнуть правой кнопкой мыши командную строку и выбрать запуск от имени администратора, что, очевидно, невозможно в Server Core.

Вы уже запускаете команды от имени администратора, в противном случае такие команды, как

net user administrator Pa$$w0rd

неизбежно потерпит неудачу.

Твоя проблема в другом.

Смотрите здесь . Windows Server Core не поддерживается для установки WDK. О настройке переменных среды на Server Core смотрите этот ответ .

Вы должны взглянуть на этот скрипт и на то, что он на самом деле делает, если он использует команды SET или SETX или что-то еще, и там вы можете найти подсказку, почему переменные не установлены должным образом. Возможно, они установлены постоянно, но не в текущем окне.


2
Я заменил setкоманды, setxпытаясь отладить другие проблемы. Вот что привело меня на путь получения настоящей привилегии администратора.
Даниэль
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.