在Windows 7上,有没有可以以管理员身份启动cmd的命令提示行?
在Linux上,我们可以使用
sudo bash
作为超级用户运行shell。
在Windows 7上,我们可以使用
Start menu -/> (在搜索框中,键入)cmd -/> 右键点击搜索结果,选择Run as Administrator
以管理员身份运行命令提示符。是否也有像Linux的sudo
或su
这样的命令提示行,以管理员身份启动shell?
在Linux上,我们可以使用
sudo bash
作为超级用户运行shell。
在Windows 7上,我们可以使用
Start menu -/> (在搜索框中,键入)cmd -/> 右键点击搜索结果,选择Run as Administrator
以管理员身份运行命令提示符。是否也有像Linux的sudo
或su
这样的命令提示行,以管理员身份启动shell?
runas
命令 是最接近你要找的东西。
runas /user:username cmd.exe
格式是runas
,你要运行的用户名,其他选项,然后是你要运行的程序。
如果你在一个域上,你可以使用。
runas /user:DOMAIN\USERNAME cmd.exe
这可以从Run
框(Win+R)或命令窗口中运行。
请注意,这和sudo
不完全一样–你不能用它来提升自己,只是以不同的用户身份运行一些东西。如果你已经有了管理权限,那么对你的帐户进行运行将给你与普通命令相同的访问权限(当然,除非你以不同的管理员帐户运行,这将授予这些管理员对新shell的权限)。
创建一个批处理文件,如sudo.bat,然后输入以下命令,然后保存在PATH中:
@echo Set objShell = CreateObject("Shell.Application") > %temp%\sudo.tmp.vbs
@echo args = Right("%*", (Len("%*") - Len("%1"))) >> %temp%\sudo.tmp.vbs
@echo objShell.ShellExecute "%1", args, "", "runas" >> %temp%\sudo.tmp.vbs
@cscript %temp%\sudo.tmp.vbs
要使用它,举个例子,sudo cmd net start fms
,但是,如果命令行中有quotemark,脚本就无法使用。
我对现有的解决方案感到失望,所以我写了一个小的 Node.js 脚本,这个脚本应该会被更多的*nix用户所熟悉。
它提升了当前用户,没有密码提示(只有 UAC ),重定向stdin和stdout,并在同一个控制台窗口中运行。 https://github.com/tehsenaus/windosu
如果您想要一个命令行解决方案:从 http://www.ntwind.com/software/hstart.html 下载hstart,然后解压hstart.exe或hstart64.exe到您路径上的某个地方。你可以用hstart /runas cmd
或hstart64 /runas cmd
来启动一个升高的命令提示符。
但最快的方法(如问题评论中所述)还是按Windows,输入cmd
,然后按Ctrl+Shift+Enter。
你可能会喜欢 Sudo for Windows 。
我将正版的su
和sudo
命令包含在我的 Hamilton C shell 中,以作为另一个用户或提升(用UAC提示)或两者兼而有之,即提升为另一个用户运行命令。与runas
和其他替代方案不同,我的su
和sudo
知道如何传递当前目录、环境变量和长命令行。这是一个商业产品,但有一个 免费版 。充分披露:我是作者。但我也很乐意回答问题。