如何在 Windows 容器中以管理员身份运行脚本

Dan*_*iel 18 windows docker

我正在尝试在基于windowsservercoreDocker映像上安装Windows Enterprise WDK。该应用程序通过解压缩进行安装,我已经完成了该操作并将该映像提交给了 Docker。现在我需要运行一个设置环境变量的脚本。根据 Enterprise WDK 安装说明,我必须以管理员身份运行此脚本。我直接在我的台式机上完成了这个工作,它可以运行文件。在 Docker 容器内,默认登录用户是

PS C:\> whoami
user manager\containeradministrator
Run Code Online (Sandbox Code Playgroud)

我试过启用管理员帐户。

PS C:\> net user administrator /active:yes
The command completed successfully.
PS C:\> net user administrator Pa$$w0rd
The command completed successfully.
Run Code Online (Sandbox Code Playgroud)

我尝试以管理员身份启动 shell,但用户没有改变。

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
Run Code Online (Sandbox Code Playgroud)

如果我运行我的脚本,它无法设置脚本中指定的任何环境值。

建议?

Voj*_*nal 9

您的问题根本不是权利不足。请参阅这篇文章

UAC 在 Server Core 中不可用,因为它只是命令行界面,没有 IE,也不支持用户应用程序。此外,要在命令提示符下使用 UAC,您需要拥有 Explorer Shell,以便您可以单击“开始”,右键单击“命令提示符”,然后选择以管理员身份运行,这在 Server Core 上显然是不可能的。

您已经以管理员身份运行命令,否则命令如

net user administrator Pa$$w0rd

将不可避免地失败。

你的问题是别的。

安装 WDK 不支持 Windows Server Core。关于在 Server Core 上设置环境变量,请参阅此答案

您应该查看该脚本及其实际作用,如果它使用 SET 或 SETX 命令或其他命令,您可以在那里找到变量未正确设置的线索。可能是它们被永久设置,但不在您当前的窗口中。

  • 我已经用 `setx` 替换了 `set` 命令试图调试其他问题。这就是让我走上尝试获得真正管理员权限的道路的原因。 (2认同)