如何将 PowerShell 6.0 提升为 RunAs Admin



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

Start-Process powershell -Verb runAs

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

Start-Process pwsh -Verb runAs

你会得到这个输出:

启动进程:此版本的 PowerShell 上的 cmdlet "启动进程"不支持参数"-Verb"。
行:1 字符:1
+ 启动过程 pwsh -动词运行
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~ + 分类信息 : 未实现: (:)[启动过程], 不支持异常
+ FullQualifiedErrorId : NotSupportedException,Microsoft.PowerShell.Commands.StartProcessCommand

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

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

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

certoc.exe -addstore root corporaterootssl.cer

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

docker run -d  microsoft/powershell:nanoserver

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

docker exec -it  gracious_ramanujan pwsh

这会让我进入以 ContainerUser 身份运行的容器中。要以容器管理员身份输入容器,我需要运行以下命令:

docker exec -it --user ContainerAdministrator  gracious_ramanujan pwsh

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新