2012-07-25 13:57:17 +0000 2012-07-25 13:57:17 +0000
106
106

如何才能一直以管理员身份运行命令提示符?

作为一名开发人员,我经常需要打开命令提示符来实现各种目的。例如,我使用iisreset来重启我的本地Web服务器。

我通常用两种方式之一打开命令窗口。

1.按Win键,输入 “cmd "并按回车键 2. 在资源管理器中,按住Shift键,右键点击一个文件夹,然后选择 "在此打开命令窗口 ”

然而,当我以这两种方式打开命令窗口时,我并没有我认为我有权获得的全部管理员权限。

为了运行只属于管理员的应用程序,我必须以这种比较费力的方式打开命令行:

1.按Win键,输入 “cmd” 2. 等待菜单弹出 3. 将手从键盘上抬起来,放在鼠标上 4. 右击 “cmd.exe "菜单项 5. 选择 "以管理员身份运行 ”

这是不可以接受的,原因如下。

  • 窗口总是在C:/windows/system32中打开,而不是在我的Users目录下(如批准的技术1)或我想要的文件夹中(如批准的技术2)。所以我经常要改变目录才能到达我想去的地方。
  • 这个过程比我喜欢的任何一种方法都要慢几毫秒。在我的职业生涯的剩余时间里,每天都要执行好几次,这就会让我损失十天左右的时间,花在点击、等待和更换目录上。
  • 作为一个程序员,执行一个毫无意义的机器人任务会给我带来巨大的情感痛苦。 -作为一个程序员,抬手是一项繁重的任务,给我带来巨大的身体痛苦。

这就是为什么我在寻找一个一劳永逸的解决方案,让经过批准的技术1和2打开管理员命令提示。

许多程序让你从属性菜单中永久地改变其默认的特权级别。命令提示符不属于这些程序。

**如何使命令窗口默认以管理员身份运行(即使使用 “在此打开命令窗口 "上下文菜单选项)?

答案 (13)

88
88
88
2012-07-25 14:12:02 +0000

要回答你问题的第一部分,当你按Windows键并输入 “CMD "时,你可以按Ctrl + Shift + Enter以管理员身份打开。

要回答你问题的第二部分,请将以下内容粘贴到记事本中,并以”.reg “扩展名保存:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

然后运行该文件。它将会把这些更改合并到注册表中,并将该选项添加到你的上下文菜单中。(不需要按shift键。)

38
38
38
2012-07-25 14:56:43 +0000

许多程序可以让你从属性菜单中永久地改变他们的默认权限级别。命令提示符不属于这些程序。

Compatibility选项卡对所有的Windows可执行文件完全禁用:

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="cd /d \"%userprofile%\""

要为Windows可执行文件设置管理权限,你需要创建一个快捷方式,并使用Shortcut选项卡→Advanced(开始菜单中的命令提示符项目已经是一个快捷方式)。

窗口总是在C:\windows\system32中打开,而不是在我的Users目录下(如批准的技术1)或我想要的文件夹中(如批准的技术2)。因此,我经常不得不改变目录以到达我想去的地方。

这是正常的,也是有道理的,因为如果你打开的是管理员命令提示符,你可能正在做一些需要管理员权限的系统操作,而不是你已经有权限的用户操作。

你可以通过添加/编辑Autorun注册表项来全局设置默认目录(它甚至不需要是一个可扩展的字符串来使用环境变量)。

现在,任何时候你使用任何方法打开命令提示符,都会自动默认(嗯,技术上说是change-directory)到你的用户配置文件目录。

更棒的是,你可以添加其他命令,每当你使用&操作符打开命令提示符时就会自动运行(例如,cd /d %userprofile% & cls & dir)。此外,您还可以在HKLM分支下的同一键中设置相同的值,为所有用户设置。

请注意,你仍然必须接受UAC的提示。不幸的是,(目前?)没有办法创建一个UAC可信程序的 “白名单",这样就可以以管理员身份运行命令提示符,而不必接受提示符。这就给你留下了(a)几个选择。

在第一种情况下,你完全避免了UAC,而在后两种情况下,你只需在创建快捷方式时输入一次证书。

20
20
20
2011-11-13 07:15:41 +0000

我使用的解决方案是打开开始菜单,输入'cmd'并按Ctrl+Shift+Enter键打开命令提示符。这样就会导致以管理员身份启动所选程序。

12
12
12
2013-03-10 22:08:33 +0000

要在每次简单点击时以管理员身份自动运行CMD(无需右击或创建额外的快捷方式),有一个简单的解决方法。

1.在 注册表编辑器 ,导航到:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

  1. 右击Layers,选择新建字符串值。将新字符串值的名称设置为(CMD.EXE)命令提示符的完整路径(即C:\Windows\System32\cmd.exe)

  2. 双击新的字符串值进行修改,并将“值数据”设置为RUNASADMIN

我也有同样的烦恼,这个方法对我很有效。

11
11
11
2014-01-04 17:10:28 +0000

如果你想让CMD.exe始终以管理员身份运行,只需在注册表中添加以下注册码:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\Windows\System32\cmd.exe"="~ RUNASADMIN"
"C:\Windows\SysWOW64\cmd.exe"="~ RUNASADMIN"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\Windows\System32\cmd.exe"="~ RUNASADMIN"
"C:\Windows\SysWOW64\cmd.exe"="~ RUNASADMIN"
```。
4
4
4
2012-07-25 14:31:14 +0000

我曾使用过一些工具,这些工具是其他的变通方法(除了Jesse提到的)。

早在Vista刚出来的时候,微软就推出了一个 elevate “ powerToy,这个工具相当有用,而且做了这个工作,我相信(还没有测试过)仍然适用于Windows 7。把它放到你的路径环境中,你就可以从普通的命令提示符中运行 "enlevate iisreset"(甚至从开始/运行或创建一个快捷方式中运行 "enlevate cmd")。

4
4
4
2013-09-25 01:03:59 +0000

最简单的方法是设置一个任务计划条目,使用最高权限运行cmd.exe。不要为它创建一个触发事件,并确保在 “设置 "选项卡中选择 "允许任务按需运行 "复选框。同样在 "设置 "选项卡中,确保 "如果任务已经在运行,那么以下规则适用 "下拉菜单被设置为 "不要启动新实例"。

然后在桌面上创建一个快捷方式,并从那里运行它,或通过快捷方式热键或将快捷方式钉在任务栏上。

我在Windows 7系统上做了这个操作,效果非常好。

2
2
2
2013-09-23 10:28:31 +0000

只需复制并粘贴cmd.exe,并将其重命名为 “cmda.exe",在\system32文件夹中(337 KB并不是什么大不了的事…)。cmda.exe属性中的 "以管理员身份运行 "选项将不再是灰色的,你可以设置它总是以管理员身份运行。现在你会有两个命令提示:第一个是常规的,第二个是有(a)dmin权限的。在Win搜索栏中输入 "cmda "就像输入 "cmd "一样简单!

对于上下文菜单中具有管理员权限的cmd,确保你已经有了cmda.exe,将其添加到新的.reg文件中并启动它

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmda]
@="Open command window here (Administrator)"
"HasLUAShield"=""
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmda\Command]
@="cmda.exe /s /k pushd \"%V\""

你将在上下文菜单中看到两行相同的内容(shift);一个是非升降式命令提示符,另一个是添加了”(管理员) “的内容。

就这样……

1
1
1
2013-12-15 03:45:32 +0000

我想最简单的方法就是用下面的代码制作.reg文件,以管理员身份运行cmd。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
@="C:\Windows\System32\cmd.exe"="RUNASADMIN"

用记事本或其他东西粘贴,然后保存为.reg文件. 注意:这将使命令提示符对所有用户以管理员身份运行。要想只在你的用户上以管理员身份运行,只需将HKEY/LOCAL/MACHINE改为HKEY/CURRENT/USER。

1
1
1
2012-07-25 16:59:21 +0000

创建一个cmd.exe的快捷方式,右键选择属性,在快捷方式选项卡上选择高级,勾选以管理员身份运行。

1
1
1
2015-01-15 09:26:51 +0000

所有感谢Jesse Brohinsky

一个更完善的版本。这也包括后台目录,使你能够从文件夹内打开cmd。另外,为了方便起见,你可以以非管理员的身份打开commandpromt。

也可以禁用AdminApprovalMode。这样,当你是管理员时,你就不需要以管理员身份运行了 http://helpdeskgeek.com/windows-7/turn-off-admin-approval-mode-in-windows-7/

Windows Registry Editor Version 5.00
;write minus before to unreg example: [-HKEY_CLASSES_ROOT\Directory\shell\cmdhere]

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
```。
0
0
0
2014-09-23 08:41:15 +0000

以下是我的工作原理

@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------

你会得到同样的Uac提示,确认要运行管理员……前段时间在stackexchange找到的。

0
0
0
2011-11-13 08:30:56 +0000

除了Dracs提到的,唯一的方法就是完全关闭UAC。