5

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

Start-Process powershell -Verb runAs

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

Start-Process pwsh -Verb runAs

你得到这个输出:

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)

4

2 回答 2

5

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

certoc.exe -addstore root corporaterootssl.cer

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

docker run -d  microsoft/powershell:nanoserver

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

docker exec -it  gracious_ramanujan pwsh

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

docker exec -it --user ContainerAdministrator  gracious_ramanujan pwsh

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

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

于 2018-03-16T02:03:31.487 回答
-1

我的回答是错误的,不适合 OP 的问题。尽管如此,我会解释为什么它是错误的,而不是删除答案

您的答案Start-Process pwsh -Verb runAs在 PowerShell 7 中按预期工作。

但是,答案是错误的,因为这不会提升当前 shell,而是打开一个新 shell。我还没有验证它在 PowerShell 6 中是否也可以工作。看来 OP 的问题是特定于 docker 而不是 PowerShell,所以这也可以在 PowerShell 6 中工作。

于 2020-12-29T05:06:08.297 回答