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

use*_*882 92 windows command cmd

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

例如,我使用runas /username:admin cmd但打开的cmd似乎没有升高!有解决方案吗

小智 152

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

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

  • 好答案.我添加并编辑了我曾经在一个命令行中运行它! (2认同)

Ric*_*ven 35

根据文档,Windows安全模型......

不会始终授予管理权限.甚至管理员在执行不需要提升权限的非管理任务时也会在标准权限下运行.

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

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

NirCmd:

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

windosu:

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

  • 在输入`nircmd`之后,让它像Linux`sudo`一样工作,在你的路径中用这个内容创建一个`sudo.bat`文件:`nircmd elevate%*`.然后你可以做,例如,`sudo net stop W3SVC` (4认同)
  • 谢谢,`nircmdc提升路由删除0.0.0.0掩码0..0.0 192.168.1.1`终于工作了.尽管已经是管理员(杀死批处理模式),其他`runas/user:...`方式提示输入密码. (3认同)
  • 请不要使用网络上“帮助您提升权限”的随机可执行文件。不好的做法,不好的做法。 (2认同)

Sti*_*ler 26

我没有足够的声誉来为最佳答案添加评论,但凭借别名的强大功能,只需输入以下内容即可获得:

powershell "start cmd -v runAs"
Run Code Online (Sandbox Code Playgroud)

这只是user3018703优秀解决方案的缩短版本:

powershell -Command "Start-Process cmd -Verb RunAs"
Run Code Online (Sandbox Code Playgroud)


Dhe*_*kar 22

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

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

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

方法2:使用第三方程序

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

  • 请不要使用网络上“帮助您提升权限”的随机可执行文件。不好的做法,不好的做法。 (3认同)
  • 这应该标记为答案!谢啦! (2认同)
  • 我将其汇总为可安装的解决方案:https://webinstall.dev/sudo/ (2认同)

joh*_*mpf 12

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

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

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

中长答案:虽然提升创建任务(但我更喜欢任务调度器GUI):

schtasks /create /sc once /tn cmd_elev /tr cmd /rl highest /st 00:00
Run Code Online (Sandbox Code Playgroud)

然后,不需要提升,调用

schtasks /run /tn cmd_elev
Run Code Online (Sandbox Code Playgroud)

答案:有很多烦躁的细节; 请参阅我的博客条目"在没有UAC的情况下启动程序,在系统启动和批处理文件中有用(使用任务计划程序)"


Dav*_*uez 7

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

.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe
Run Code Online (Sandbox Code Playgroud)

“-h”开关是一个神奇的开关:

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


sta*_*ler 7

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

set OLDDIR=%CD%
powershell -Command "Start-Process cmd -ArgumentList '/K cd %OLDDIR%' -Verb RunAs "
Run Code Online (Sandbox Code Playgroud)

  • “cd %OLDDIR%”部分应为“cd /D %OLDDIR%”。然后,当从 cmd 的默认驱动器(通常是 C:)以外的驱动器调用批处理文件时,它也可以工作。 (2认同)

小智 7

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

START c:\Windows\System32\runas.exe /user:Administrator /savecred cmd.exe
Run Code Online (Sandbox Code Playgroud)


Ogm*_*ios 5

虽然通过Dheeraj巴斯卡尔工作提供了两种解决方案,遗憾的是他们将导致UAC显示在顶部(z顺序明智)对话框,但没有得到关注(焦点窗口是调用者CMD / PowerShell窗口),所以我要么需要抓住鼠标并单击“是”,或使用 Alt+Shift+Tab 选择 UAC 窗口。(在 Win10x64 v1607 build14393.447 上测试;UAC = "[...] do not dim [...]"。)

以下解决方案有点笨拙,因为它使用了两个文件,但它保留了正确的焦点顺序,因此不需要额外的鼠标/键盘操作(除了确认 UAC 对话框:Alt+Y)。

  1. cmdadm.lnk(快捷方式属性/高级.../以管理员身份运行=开启) %SystemRoot%\System32\cmd.exe /k "cd /d"
  2. subat @start cmdadm.lnk %cd%

运行su


Mat*_*att -6

有多种方法可以打开提升的 cmd,但只有您的方法可以在标准命令提示符下运行。你只需要输入usernot username

runas /user:machinename\adminuser cmd
Run Code Online (Sandbox Code Playgroud)

请参阅微软社区的相关帮助。

  • 这与运行提升的命令不同,因为当我打开提升的 cmd 窗口并输入“whoami”时,它会带来与非提升的窗口相同的结果。当我在这两种情况下运行“whoami /all”时,我可以看到同一用户的权限方面的差异。 (5认同)