如果你使用以下命令打开命令提示符鲁纳斯命令,您将看到一个窗口,显示
(Running as some_user)
在标题栏中,但如果你右键单击命令执行程序并选择以管理员身份运行你将看到一个包含以下内容的窗口:
Administrator cmd.exe
在标题栏中。奇怪的是,这些窗口表现出不同的行为。
我的问题是如何才能获得管理员命令通过命令行提示符?或者说是否可能?
答案1
你没有指定你使用的操作系统,但它应该是 Vista 或更高版本,因为这是典型的用户帐户控制行为。
基本上,在最近的 Windows 系统中,即使您的用户帐户是作为计算机管理员组的成员,您仍然无权执行管理任务;如果您尝试执行实际上需要管理权限的操作,则操作将失败或会出现一个弹出窗口要求您确认该操作;如果您只具有标准用户权限,则会要求您提供真实管理员帐户的凭据。
如果你右键点击某个程序并选择“以管理员身份运行”,UAC 会要求你确认,然后你就可以有效地绕过它,程序(顺便说一下cmd.exe
,不仅仅是)将以完全管理权限运行。这对于以下程序特别有用:不是与 UAC 兼容,如果它们需要管理权限并且您在 UAC 运行时双击它们,它们往往会悄悄失败。
如果 UAC 被禁用(可以通过控制面板完成),这当然没有任何意义,在这种情况下双击图标或选择“以管理员身份运行”可以执行完全相同的操作;但窗口标题仍将反映该命令提示符的“提升”状态。
如果您问“如何从命令行以管理员身份(即提升权限)运行命令”,据我所知,没有内置对此的支持。如果有start /elevated
或runas /elevated
开关就更好了。
答案2
抱歉,我又提起一个老问题了,但是我在搜索完全相同的东西时,Google 引导我到这里,所以也许这会对其他正在寻找这个问题的人有所帮助。社区编写的实用程序确实可以完成 OP 所寻找的功能(相当于“start”或“runas”命令的“/elevated”开关):
原始版本由 John Robbins (C#) 编写:
http://www.wintellect.com/cs/blogs/jrobbins/archive/2007/03/27/elevate-a-process-at-the-command-line-in-vista.aspx
由 Johannes Passing 重写(C - 不依赖于.Net):
http://jpassing.com/2007/12/08/launch-elevated-processes-from-the-command-line/
使用示例:
c:\>elevate cmd.exe
在 UAC 提示符中单击“确定”,您将获得管理员命令提示符。
答案3
要在 Windows 7 中运行任何提升的程序,请在启动程序时按住 << 左 CTRL>> 和 << 左 SHIFT>>。(即键入 cmd,然后按 << 左 ctrl>>+<< 左 shift>>+<< enter>>