我正在尝试使用 powershell 以管理员身份执行命令提示符。 (就像右键单击 cmd 图标并选择以管理员身份运行一样)。 为了做到这一点,我应该在以下内容中添加什么?
& cmd.exe /c $VAR
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(用户帐户控制)提示。
输入此命令:
runas /noprofile /user:Administrator cmd
然后输入管理员密码。
@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"