在PowerShell中以管理员身份运行CMD

问题描述 投票:0回答:3

我正在尝试使用 powershell 以管理员身份执行命令提示符。 (就像右键单击 cmd 图标并选择以管理员身份运行一样)。 为了做到这一点,我应该在以下内容中添加什么?

& cmd.exe /c $VAR
powershell cmd administrator
3个回答
7
投票

有点晦涩的是,您必须使用

Start-Process
和参数
-Verb RunAs
才能在 PowerShell 中启动 elevated 进程(具有管理权限的进程):

# The command to pass to cmd.exe /c
$var = 'echo hello world & pause'

# Start the process asynchronously, in a new window,
# as the current user with elevation (administrative rights).
# Note the need to pass the arguments to cmd.exe as an *array*.
Start-Process -Verb RunAs cmd.exe -Args '/c', $var

注:

  • 要进行调用 - 总是在新窗口中执行 - 同步,请添加

    -Wait

  • 除非您调用的进程本身已经提升,否则您将收到交互式UAC(用户帐户控制)提示

    • 虽然可以将您的系统配置为不需要需要此提示,但这样做是不明智的 - 请参阅此答案

0
投票

输入此命令:

runas /noprofile /user:Administrator cmd 

然后输入管理员密码。


0
投票

@Roei Givati - 事实上,我刚刚自己为 Jenkins 解决了这个问题! 从任务调度程序中直接使用整个路径设置下面的命令(您可以从 jenkins 仪表板上的节点页面获取它),并为其提供 /K 作为任务调度程序中的选项。当然,我也设置了路径。然后,您可以使用非交互式 svc 帐户以 cmd 文件的形式启动该进程:

java -jar agent.jar -jnlpUrl https://jenkins-path/nts4/computer//slave-agent.jnlp -secret f7351fa6d6774765432111b704cfd777931144bb32c42 -workDir "driveletter:path\nts4"
© www.soinside.com 2019 - 2024. All rights reserved.