2009-09-17 09:24:35 +0000 2009-09-17 09:24:35 +0000
463
463
Advertisement

有没有什么 "sudo "命令?

Advertisement

我总是在我的Windows电脑上使用非管理员账号工作。有时我需要安装需要管理员权限的程序。由于我主要使用Windows命令提示符,请问有没有类似于Linux终端命令sudo的Windows命令来升级权限?

Advertisement

答案 (15)

272
272
272
2009-09-17 09:29:46 +0000
runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
runas /noprofile /user:Administrator cmd

只需运行:

&001

,以管理员身份启动命令shell。

128
128
128
2011-04-12 06:42:00 +0000

Elevate**** - _“执行一个具有UAC权限的命令。它与sudo不同,它将执行用户改为Administrator,但它的语法比runas要简单明了很多,而且它可以保留当前目录,允许使用相对路径。只要启用了UAC,就必须在过程中的某一点上有某种提示。如果你需要完全摆脱提示,你必须禁用UAC

Elevate缓解的痛点是将一个特定的进程从非特权的shell升级,然后正常进行。如果没有这个,你需要启动一个特权命令提示符右键点击> "以管理员身份运行”,然后再尝试特权命令,这样就不容易被脚本化。如果你的肌肉记忆卡在了sudo上,请使用Doskey创建一个别名:

secpol.msc

或在PATH中的批处理文件: %wheel ALL=(ALL) NOPASSWD: ALL

Elevate是由Johannes Passing编写的第三方工具。它是一个11kb的下载文件,可移植(不需要安装)。http://code.kliu.org/misc/elevate/

67
Advertisement
67
67
2009-09-17 09:28:30 +0000

你可以使用runas命令,这个命令有点类似,或者你也可以在SourceForge上的sudo for Windows项目中查看一下,它增加了一个sudo命令。Bob是普通用户,James是管理员。

如果你以Bob的身份登录并使用 “runas james acommand "命令,该命令就会像James一样运行,所以它可以访问James的用户设置,任何用户的更改都会进入James的我的文档和设置文件夹等。因此,如果你在安装一个应用程序,比如说,它将以James的身份安装,而不是以Bob的身份安装。为了防止任何用户能够sudo,你必须定义一个sudoers用户组,该用户组中包含有权限提升使用sudo的普通用户列表。用户在提升之前仍然需要提供凭证。

有时区别不重要,有时重要的是,我发现这两个命令都很有用。

41
41
41
2009-09-17 13:11:39 +0000

你也可以使用脚本提升动力玩具

30
Advertisement
30
30
2012-10-26 07:52:13 +0000

如果你准备好了要切换到其他游戏机,有ConEmu(我是作者)。它的特点之一–可以在一个ConEmu窗口中同时运行高架和非高架标签页。为了方便用户使用,有一个批处理文件 csudo.cmd (可以很容易地采用到bash)。完整的描述请看项目的wiki。简而言之,当你从现有的非高架标签页中运行一些命令时,例如

csudo dism /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess

ConEmu将在新的高架控制台/标签页中启动dism(在Vista中的UAC提示符或XP中的登录框中的UAC提示符)。

默认情况下,csudo会在一个分页中启动新的控制台(可以通过编辑csudo.cmd内容来改变)。

24
24
24
2012-08-28 10:36:22 +0000

快速方法:

三步,添加sudo.

  1. 打开PowerShell,

  2. 复制下面的脚本(Ctrl+C)并粘贴到PowerShell中(Alt+Space+E+P):

$script_path="$HOME\Documents\Scripts"; if (!(test-path $script_path)) {New-Item -ItemType directory $script_path} if (!(test-path $profile)) { new-item -path $profile -itemtype file -force }". $script_path\sudo.ps1" | Out-File $profile -append; "function sudo(){if (`$args.Length -eq 1){start-process `$args[0] -verb `"runAs`"} if (`$args.Length -gt 1){start-process `$args[0] -ArgumentList `$args[1..`$args.Length] -verb `"runAs`"}}" | Out-File $script_path\sudo.ps1; powershell

1.按回车键。

2.在PowerShell中永久启用sudo命令。

用法:

sudo <process-name> [param1 [param2 [param3]]]

例子: sudo explorer sudo notepad sudo powershell sudo cmd sudo taskmgr sudo tasklist sudo taskkill /IM Skype.exe /PID 8496

学习的长方法:

19
Advertisement
19
19
2009-09-17 11:22:41 +0000

如果你是在Windows系统下进行的,那么除了其他几个答案中提到的Run As命令外,还有一些方法可以用鼠标来完成。其中一个是"Run As... “选项(我认为从Vista开始就叫”Run As Administrator“)。

4
4
4
2011-11-17 15:24:50 +0000
3
Advertisement
3
3
2012-09-06 15:01:51 +0000

正如你可能已经发现的那样,runas可以让你以另一个用户的身份运行,但是它不能做 elevation,而且它不能传递当前目录、环境变量和长的命令行。你也可以两者兼而有之,以不同的用户身份运行 elevated。当前的目录、环境变量和长的命令行都是通过共享内存握手的方式传递给在调用者上下文中运行的 su 和作为新凭证的副本之间运行的自己,然后启动子系统。全面披露:我是作者。

3
3
3
2018-06-14 18:44:28 +0000

有一个chocolatey软件包,它的名字是sudo。你可以使用以下命令安装这个软件包:

choco install -y sudo

然后在你必须使用的任何Windows/MS shell中,你可以使用sudo

3
Advertisement
3
3
2019-11-07 16:12:24 +0000

我写了gsudo,是一个用于windows的sudo,感觉就像*nix sudo一样,有几个杀手级的功能:

  • 在当前控制台中运行(附图),不会破坏tab键自动完成。或者添加-n,在新窗口中启动。 –可靠地处理所有的场景,在脚本上使用。ExitCodes、StdIn/Out/Er重定向/捕获) –支持Cmd/PowerShell/PowerShell内核 –凭证缓存。如果gsudo在几分钟内被多次调用,它只显示一次UAC弹出。

&004 ###使用方法

gsudo在当前控制台中打开一个高架shell。

gsudo [options] {command} [arguments]执行指定的高架权限的命令。

最相关的[options]: - -n | --new* 在新的控制台中启动高架权限的命令(并立即返回)。 - **-w | --wait* 强制等待进程结束(并返回退出代码)。 - -s | --system* 以本地系统帐户("NT AUTHORITY\SYSTEM")运行。

安装

  • 使用Scoop: --copyev
  • 使用Chocolatey: scoop install gsudo
  • 手动安装
PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
1
1
1
2014-11-26 09:45:34 +0000

一个可行的sudo替代Cygwin的mintty终端是将以下脚本放在用户的PATH中:

$!/bin/bash
cygstart --action=runas mintty -e `which bash` -lc \"$@\"

对我来说,这是唯一可行的替代方案,可以在Windows的终端中提升vimcygrunsrv等程序的权限。

1
Advertisement
1
1
2017-11-20 19:58:47 +0000

在我看来,最简单的解决方案是利用powershell来完成工作,它是可移植的,并且会提示用户使用UAC。

0
0
0
2018-02-01 21:29:20 +0000

下面的vbs脚本允许启动一个带参数的命令,并在有限的使用情况下模仿原始的unix sudo命令的行为(它不会缓存凭证,也不允许用不同的凭证真正执行命令)。我把它放在了C:\Windows\System32上。

0
Advertisement
0
0
2016-01-10 21:08:24 +0000

这个脚本的作用是:

@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 //NoLogo %temp%\sudo.tmp.vbs

&001

保存为sudo.cmd,然后将其添加到你的PATH中

注意:runas在这里的意思是 “以管理员身份运行",而不是 "以其他用户身份运行” 摘自此处 ,略作编辑,从输出中删除cscript.exe头

Advertisement
Advertisement