Answers:
该运行方式命令。
runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
赶紧跑:
runas /noprofile /user:Administrator cmd
以管理员身份启动命令shell
/noprofile
。
Runas
仅在一组不同的凭据下运行命令。即使您的凭据具有管理员权限,也不意味着您的凭据下的所有进程都以admin身份运行。
我发现提高的今天,其“执行与UAC权限提升的命令。这是内部命令提示符或批处理文件时非常有用。” 它与并不相同sudo
,它将执行用户更改为Administrator,但是它的语法比更加易于使用runas
,并且可以保留当前目录,从而可以使用相对路径。
Synopsis:
elevate [(-c | -k) [-n] [-u]] [-w] command
Options:
-c Launches a terminating command processor; equivalent to "cmd /c command".
-k Launches a persistent command processor; equivalent to "cmd /k command".
-n When using -c or -k, do not pushd the current directory before execution.
-u When using -c or -k, use Unicode; equivalent to "cmd /u".
-w Waits for termination; equivalent to "start /wait command".
Elevate的目的不是解决或绕过UAC(用户帐户控制),而是与其一起工作。只要启用了UAC ,过程中的某些时候都必须有某种提示。如果您需要完全摆脱提示,则必须禁用UAC。
减轻痛苦的点是从非特权外壳升级特定进程,然后正常进行。否则,您需要右键单击>“以管理员身份运行”以启动特权命令提示符,而在尝试特权命令之前,该脚本很难编写脚本。
%wheel ALL=(ALL) NOPASSWD: ALL
sudo中的相同。
@elevate %*
=>赚钱!
您可以使用类似的runas命令,也可以在SourceForge上签出Windows项目的sudo,其中添加了sudo命令。
区别是细微的:
假设您有两个用户。Bob是普通用户,James是管理员。
如果您以Bob身份登录并使用“ runas james acommand”,则该命令就像由James运行一样运行,因此它将访问James的用户设置,并且所有用户更改都将进入James 我的文档和设置文件夹等。因此,如果正在安装应用程序,例如,它将以James身份而不是Bob身份安装。
另一方面,如果Bob执行“ sudo acommand”,则该命令仍将以Bob的身份运行,但具有提升的权限-就像Linux sudo命令一样。为了防止任何用户能够使用sudo进行sudo,您必须定义一个sudoers用户组,其中包含有权使用sudo进行提升的普通用户列表。用户仍必须在提升权限之前提供凭据。
有时差异并不重要,有时却并不重要,我发现这两个命令都可能有用。
~/.themes
则sudo-ed应用程序将无法访问该主题,因为它不在中/home/root/.themes
,并且将使用默认的丑陋gtk主题。
您也可以使用脚本高程PowerToys。
如果您准备切换到其他控制台,可以使用ConEmu(我是作者)。它的功能之一-能够在一个ConEmu窗口中同时运行提升和非提升选项卡。选项卡也可以使用不同的凭据开始。
为了用户的舒适,这里有一个批处理文件csudo.cmd(可以很容易地用于bash)。阅读项目Wiki中的完整描述。简而言之,例如,当您从现有的非高程选项卡运行某些命令时,例如
csudo dism /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess
ConEmu将dism
在新的提升的控制台/选项卡中启动(在Vista中显示UAC提示,在XP中显示“登录”框)。
默认情况下csudo
,将拆分启动新控制台(可以通过编辑csudo.cmd
内容进行更改)。
当然,sudo.cmd
如果您喜欢“经典” sudo
一词,则可以将其重命名为。
press enter or esc to exit
消息。
sudo
命令完成其工作后,您也将返回非高架终端!你走错路了。
添加sudo的三个步骤。
打开PowerShell。
复制以下脚本(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
它将sudo
在PowerShell中永久启用命令。
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
注意:我混合了两篇文章的脚本来创建上述脚本。而是将脚本手动粘贴到记事本中,而是添加了Out-File
要保存的语句ps1
和$profile
脚本中的文件。
提示:如果您不是UAC弹出窗口的忠实拥护者(像我一样),请将以下内容保存在* .reg文件中并运行它:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"ConsentPromptBehaviorAdmin"=dword:00000000
. : File C:\Users\User\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is disabled on this system.
powershell -c start -verb runas program.exe
功能的包装。另请注意,您无法使用cmd提示(本机)进行这样的提升。Powershell是最好的本机选项。
如果您是在Windows上执行此操作,则除了几个其他答案中提到的“运行方式”命令外,还可以使用鼠标来执行此操作。
如果Shift右键单击Windows中的大多数可执行文件时按住该键,则应注意一些其他高级选项。其中之一是“ Run As...
”选项(我认为Run As Administrator
从Vista开始将其称为“ ”)。
您还可以从Microsoft下载更高级的RunAs版本,称为ShellRunAs,它以命令行和图形方式增强了内置RunAs命令的功能,包括保存帐户凭据。
您可能已经发现,runas可以让您以其他用户身份运行,但是它无法进行提升,并且不会传递当前目录,环境变量或长命令行。
Hamilton C shell使用真正的su和sudo解决了这一问题。su允许您以其他用户身份运行命令;sudo(实际上是su的别名)使您可以运行提升权限的命令。您也可以同时以不同用户身份提升运行权限。当前目录,环境变量和长命令行通过在调用者上下文中运行的su与自身副本之间的共享内存握手方式传递,作为与新凭据的插入而运行,然后启动该子凭据。完全公开:我是作者。
该脚本可以完成以下任务:
@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
将其另存为,sudo.cmd
然后将其添加到您的PATH中
注意:runas
在这种情况下,“以管理员身份运行”而不是“以其他用户身份运行”是指
从这里获取,并进行了稍微的编辑以从输出中删除cscript.exe标头
以下vbs脚本为我完成了窍门。我穿上了C:\Windows\System32
Set objArgs = WScript.Arguments
exe = objArgs(0)
args = ""
IF objArgs.Count >= 2 Then
args = args & objArgs(1)
End If
For it = 2 to objArgs.Count - 1
args = args & " " & objArgs(it)
Next
Set objShell = CreateObject( "WScript.Shell")
windir=objShell.ExpandEnvironmentStrings("%WINDIR%")
Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShellExecute exe, args, "", "runas", 1
set objShellApp = nothing
在命令提示符下使用的示例 sudo net start service