如何以提升的权限从命令行运行程序

如何以提升的权限从命令行运行程序

当我已经处于非提升权限的命令行中时,有没有办法以提升的权限运行程序或命令?

与我点击程序快捷方式并选择时执行的操作完全相同以管理员身份运行

鲁纳斯命令可能不是一个解决方案——它要求输入密码,但我只想要联合航空对话。

答案1

看起来像这个实用程序 -隐藏的开始- 如果您使用 /uac 开关,它将执行您希望的操作。以下是示例命令行:

hstart /UAC "notepad.exe"

这将弹出 UAC 对话框,而不是像 runas 那样要求输入密码。

在此处输入图片描述

答案2

有一个这样做的方法在 PowerShell 中:

PS> Start-Process powershell -Verb runAs

答案3

构建于鲁斯塔姆回答, 你可以:

  • 在默认的 %PATH% 中的某个位置创建一个su.bat批处理文件,其中包含以下内容:
@echo off
setlocal
set cmd=%*
if not defined cmd set cmd=%ComSpec%
powershell iex """start -v runas $Env:cmd"""
  • 将此函数添加到您的 PowerShell$配置文件function su {start -verb runas @args}

现在您可以su <command> [parameters]在任一 shell 中发出!

答案4

还有另一种方法可以运行具有 UAC 提升的进程,无需第三方工具,也不必为 PowerShell 设置执行策略。

此方法使用 Microsoft HTML 应用程序主机 (mshta) 以单个命令的形式运行 VBScript 代码片段:

mshta vbscript:Execute("Set UAC = CreateObject(""Shell.Application""):
  UAC.ShellExecute ""SomeProcess.exe"", ""SomeArguments"", """", ""runas"", 1:close")

相关内容