如何将PowerShell 6.0提升为RunAs Admin

时间:2018-02-02 21:17:38

标签: powershell powershell-v6.0

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

Start-Process powershell -Verb runAs

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

Start-Process pwsh -Verb runAs

你得到这个输出:

  

Start-Process:参数' -Verb' cmdlet' Start-Process'不支持在这个版本的PowerShell上   在行: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泊坞窗映像(microsoft / powershell:nanoserver)

2 个答案:

答案 0 :(得分:1)

我发布问题时想要完成的是使用以下命令将证书添加到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。我写了一篇blog post,详细说明了如何在Docker构建过程中为图像添加SSL证书。

答案 1 :(得分:-1)

我的回答是错误的,不适合 OP 的问题。尽管如此,我将解释为什么它是错误的而不是 deleting the answer

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

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