如何将 PowerShell 6.0 提升为 RunAs Admin

Jos*_*hua 5 powershell powershell-v6.0

在 PowerShell 6.0 之前,为了提升您的会话,您运行了命令

Start-Process powershell -Verb runAs
Run Code Online (Sandbox Code Playgroud)

尝试在 PowerShell 6.0 中运行类似命令时

Start-Process pwsh -Verb runAs
Run Code Online (Sandbox Code Playgroud)

你得到这个输出:

Start-Process :此版本的 PowerShell 上的 cmdlet“Start-Process”不支持参数“-Verb”。
在 line:1 char:1
+ Start-Process pwsh -Verb runAs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotImplemented : (:) [Start-Process], NotSupportedException
+fullyQualifiedErrorId : NotSupportedException,Microsoft.PowerShell.Commands.StartProcessCommand

那么如何在 PowerShell 6.0 中提升为以管理员身份运行?

我正在运行 PowerShell Windows Nano Server docker 映像 (microsoft/powershell:nanoserver)

Jos*_*hua 5

当我发布我的问题时,我想要完成的是使用以下命令将证书添加到 Windows 证书存储:

certoc.exe -addstore root corporaterootssl.cer
Run Code Online (Sandbox Code Playgroud)

我在 Windows Nano Server 容器中执行此命令时收到的消息是访问被拒绝。这是因为我使用以下命令使用标准用户 ContainerUser 运行容器:

docker run -d  microsoft/powershell:nanoserver
Run Code Online (Sandbox Code Playgroud)

我将使用以下命令连接到容器:

docker exec -it  gracious_ramanujan pwsh
Run Code Online (Sandbox Code Playgroud)

这会将我置于以 ContainerUser 身份运行的容器中。要以 ContainerAdministrator 身份进入容器,我需要运行以下命令:

docker exec -it --user ContainerAdministrator  gracious_ramanujan pwsh
Run Code Online (Sandbox Code Playgroud)

然后我能够成功运行任何管理命令。

我的最终目标是构建一个容器镜像,在此期间我需要以管理员身份运行一个或多个命令。要在 Dockerfile 中切换用户,请使用命令USER ContainerAdministrator。我写了一篇博文,详细介绍了如何在 Docker 构建过程中向映像添加 SSL 证书。