如何使用Windows命令行打开高架cmd?

时间:2013-09-30 15:28:51

标签: windows cmd command

如何使用普通cmd上的命令行打开提升的命令提示符?

例如,我使用runas /username:admin cmd但是打开的cmd似乎没有提升!任何解决方案?

23 个答案:

答案 0 :(得分:139)

我遇到了同样的问题,我能够以CMD的管理员身份打开CMD的唯一​​方法是执行以下操作:

  1. 打开CMD
  2. 撰写powershell -Command "Start-Process cmd -Verb RunAs"并按 Enter
  3. 将出现一个弹出窗口,要求以管理员身份打开CMD

答案 1 :(得分:33)

根据documentation,Windows安全模型......

  

根本不授予管理权限   倍。 甚至管理员在标准权限下运行   执行不需要提升的非管理任务   特权。

您在创建新任务对话框中有使用管理员权限创建此任务选项(任务管理器>文件>运行新任务),但没有内置方法可以使用命令行有效提升权限。

但是,您可以使用一些第三方工具(内部依赖Windows API)从命令行提升权限:

NirCmd

  1. 下载并解压缩。
  2. nircmdc elevate cmd
  3. windosu

    1. 安装它:npm install -g windosu(需要安装node.js
    2. sudo cmd

答案 2 :(得分:20)

我在这里尝试其他答案后做的简单方法

方法1:没有第三方程序(我用过这个)

  1. 使用以下内容创建名为sudo.bat的文件(您可以使用任何名称替换sudo powershell.exe -Command "Start-Process cmd \"/k cd /d %cd%\" -Verb RunAs"
  2. sudo.bat移至PATH中的文件夹;如果您不知道这意味着什么,只需将这些文件移至c:\windows\
  3. 即可
  4. 现在sudo将在“运行”对话框( win + r )或资源管理器地址栏中工作(这是最好的部分:)。
  5. 方法2:使用第三方程序

    1. 下载NirCmd并解压缩。
    2. 使用以下内容创建名为sudo.bat的文件(您可以使用任何名称替换sudo nircmdc elevate cmd /k "cd /d %cd%"
    3. nircmdc.exesudo.bat移至PATH的文件夹中;如果您不知道这意味着什么,只需将这些文件移至c:\windows\
    4. 即可
    5. 现在sudo将在“运行”对话框( win + r )或资源管理器地址栏中工作(这是最好的部分:)。

答案 3 :(得分:12)

我的信誉不足,无法在最佳答案中添加评论,但是凭借别名的强大功能,您只需输入以下内容即可摆脱困境:

powershell "start cmd -v runAs"

这只是user3018703的简短版本,非常好 解决方案:

powershell -Command "Start-Process cmd -Verb RunAs"

答案 4 :(得分:11)

我一直使用nirsoft程序(例如nircmdc)和sysinternals(例如psexec)。他们非常有帮助。

但是,如果你不想,或者不能,那就是第三方程序,这是另一种方式,纯粹的Windows。

简短回答:您可以在提升时创建具有提升权限的计划任务,然后您可以在不提升的情况下稍后调用。

中等答案:提升创建任务时(但我更喜欢任务调度程序GUI):

schtasks /create /sc once /tn cmd_elev /tr cmd /rl highest /st 00:00

然后,不需要提升,使用

调用
schtasks /run /tn cmd_elev

答案很长:有很多烦躁的细节;看我的博客文章"Start program WITHOUT UAC, useful at system start and in batch files (use task scheduler)"

答案 5 :(得分:5)

以下作为批处理文件将打开一个提升的命令提示符,其路径设置为与调用批处理文件的目录相同的目录

set OLDDIR=%CD%
powershell -Command "Start-Process cmd -ArgumentList '/K cd %OLDDIR%' -Verb RunAs "

答案 6 :(得分:3)

我现在已经使用Elevate了一段时间。

它的描述 - This utility executes a command with UAC privilege elevation. This is useful for working inside command prompts or with batch files.

我将bin.x86-64\elevate.exe.zip复制到C:\Program Files\elevate,并将该路径添加到我的PATH

然后GitBash我可以运行类似elevate sc stop W3SVC的内容来关闭IIS服务。

运行该命令会给我UAC对话框,通过键盘控制正确聚焦,并在接受对话框后返回我的shell。

答案 7 :(得分:3)

...

@ECHO OFF
SETLOCAL EnableDelayedExpansion EnableExtensions
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE
GOTO :EOF

:ELEVATE
SET this="%CD%"
SET this=!this:\=\\!

MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('CMD', '/K CD /D \"!this!\"', '', 'runas', 1);close();"
EXIT 1

将此脚本保存为" god.cmd"在你的system32或你的路径指向....

如果你在e:\ mypictures \中打开一个cmd并输入god 它会要求您提供凭据并将您带回管理员那个地方......

答案 8 :(得分:3)

使用/savecred开关使批处理文件保存实际管理员帐户的凭据。这将首次提示凭据,然后将加密的密码存储在凭证管理器中。然后,对于批次运行的所有后续时间,它将作为完整管理员运行但不提示凭证,因为它们以加密方式存储在凭证管理器中,并且最终用户无法获取密码。以下应该以完全管理员权限打开一个提升的CMD,并且只会在第一次提示输入密码:

START c:\Windows\System32\runas.exe /user:Administrator /savecred cmd.exe

答案 9 :(得分:2)

我最喜欢的方法是使用SysInternals的PsExec.exe,http://technet.microsoft.com/en-us/sysinternals/bb897553

.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe

“-h”开关是那个做魔术的人:

-h如果目标系统是Vista或更高版本,请使用帐户的提升令牌(如果可用)运行该流程。

答案 10 :(得分:2)

与上面的其他一些解决方案类似,我创建了一个elevate批处理文件,该文件运行一个提升的PowerShell窗口,绕过执行策略以启用从简单命令到批处理文件到复杂PowerShell脚本的所有操作。我建议将其粘贴在C:\ Windows \ System32文件夹中以方便使用。

原始elevate命令执行其任务,捕获输出,关闭生成的PowerShell窗口,然后返回,将捕获的输出写出到原始窗口。

我创建了两个变体elevatepelevatex,它们分别暂停并保持PowerShell窗口打开以进行更多工作。

https://github.com/jt-github/elevate

如果我的链接死了,这里是原始提升批处理文件的代码:

@Echo Off
REM Executes a command in an elevated PowerShell window and captures/displays output
REM Note that any file paths must be fully qualified!

REM Example: elevate myAdminCommand -myArg1 -myArg2 someValue

if "%1"=="" (
    REM If no command is passed, simply open an elevated PowerShell window.
    PowerShell -Command "& {Start-Process PowerShell.exe -Wait -Verb RunAs}"
) ELSE (
    REM Copy command+arguments (passed as a parameter) into a ps1 file
    REM Start PowerShell with Elevated access (prompting UAC confirmation)
    REM     and run the ps1 file
    REM     then close elevated window when finished
    REM Output captured results

    IF EXIST %temp%\trans.txt del %temp%\trans.txt
    Echo %* ^> %temp%\trans.txt *^>^&1 > %temp%\tmp.ps1
    Echo $error[0] ^| Add-Content %temp%\trans.txt -Encoding Default >> %temp%\tmp.ps1
    PowerShell -Command "& {Start-Process PowerShell.exe -Wait -ArgumentList '-ExecutionPolicy Bypass -File ""%temp%\tmp.ps1""' -Verb RunAs}"
    Type %temp%\trans.txt
)

答案 11 :(得分:1)

这是与资源管理器集成的方法。 在Windows资源管理器中的任何文件夹上单击鼠标右键时,它将弹出一个额外的菜单项:

Windows Explorer Integration

以下是步骤:

  1. 创建此密钥:\ HKEY_CLASSES_ROOT \ Folder \ shell \ dosherewithadmin
  2. 将其默认值更改为要显示为菜单项文本的任何值。例如“ DOS Shell作为管理员”
  3. 创建另一个密钥:\ HKEY_CLASSES_ROOT \ Folder \ shell \ dosherewithadmin \ command
  4. 将其默认值更改为ipsis litteris: powershell.exe-命令“开始处理-Verb RunAs'cmd.exe'-Args'/ k已推送”%1”””
  5. 完成了。现在,右键单击任何文件夹,您将在其他项目中看到您的项目。

*使用push而不是cd使其可以在任何驱动器中工作。 :-)

答案 12 :(得分:0)

使用:

startruncmd,然后是 control+shift+enter

您将获得 UAC,然后是提升的命令外壳。

答案 13 :(得分:0)

对于Cygwin的粉丝:

cygstart -a runas cmd

答案 14 :(得分:0)

您可以使用以下语法,我有同样的问题,并且认为不需要脚本。

  

runas / profile / user:domain \ username cmd

这对我有用,在您的网络上可能有所不同。

答案 15 :(得分:0)

按Windows + X键,您现在可以选择具有管理员权限的Powershell或命令提示符。如果您是管理员,则可以使用。如果系统不是您的系统,则该功能可能无法使用。

答案 16 :(得分:0)

可以使用临时环境变量与提升的快捷方式一起使用(

start.cmd

setx valueName_betterSpecificForEachCase %~dp0
"%~dp0ascladm.lnk"

ascladm.lnk(快捷方式)

_ properties\advanced\"run as administrator"=yes

(要更改路径,您需要临时创建env.Variable

_ properties\target="%valueName_betterSpecificForEachCase%\ascladm.cmd"

_ properties\"start in"="%valueName_betterSpecificForEachCase%"

ascladm.cmd

setx valueName_betterSpecificForEachCase=
reg delete HKEY_CURRENT_USER\Environment /F /V valueName_betterSpecificForEachCase
"%~dp0fileName_targetedCmd.cmd"

)(targetedCmd在提升的cmd窗口中执行)

尽管它是3个文件,但是您可以将所有内容(包括targetedCmd)放在某个子文件夹中(不要忘了在文件夹中添加folderName),然后将“ start.cmd”重命名为targeted的一个名称

对我来说,这似乎是最本机的方式,而cmd没有所需的命令

答案 17 :(得分:0)

我不确定工具ExecElevated.exe(13KB)是否可以完成这项任务....但它可能会。 或者至少对那些有类似需求的人有用,他们像我一样来到这个页面(但我没有找到解决方案,所以我最终在.Net中创建了这个工具)。

它将使用提升的令牌执行应用程序(在管理员模式下)。 但是你会得到一个UAC对话框来确认! (如果UAC已被禁用,可能没有,但尚未对其进行测试)。

调用该工具的帐户也必须有admin。权利当然。

使用示例:

ExecuteElevated.exe "C:\Utility\regjump.exe HKCU\Software\Classes\.pdf"

答案 18 :(得分:-1)

我通过在 cmd

中使用以下命令轻松完成了此操作

runas / netonly / user:Administrator \ Administrator cmd

键入此命令后,您必须输入管理员密码(如果您不知道管理员密码,请将其保留为空白,然后按 Enter 或键入对我有用的东西)。

答案 19 :(得分:-1)

Dheeraj Bhaskar使用Powershell的方法中缺少空间,至少对于Windows 10的Powershell化身而言。

sudo.bat中的命令行应该是

powershell.exe -Command "Start-Process cmd \"/k cd /d %cd% \" -Verb RunAs"

请注意%cd%

后的多余空间

;)Frode

答案 20 :(得分:-1)

只需使用以下命令: Runas / noprofile / user:管理员cmd

答案 21 :(得分:-4)

我使用runas /user:domainuser@domain cmd成功打开了一个提升的提示符。

答案 22 :(得分:-4)

有几种方法可以打开高架cmd,但只有您的方法可以在标准命令提示符下运行。您只需要user而不是username

runas /user:machinename\adminuser cmd

请参阅Microsoft community的相关帮助。