我正在使用“runas”以不同的用户身份打开命令提示符,但该命令提示符不是 以管理员身份运行。如何让它以管理员身份运行?
更新:我使用的是Windows Server 2012
更新:我通过运行
为另一个帐户打开了cmd runas /user:domain\username cmd.exe
然后我尝试在这个新提示中运行一些命令,但这不是作为提升用户运行的(即使它具有管理员权限)。
答案 0 :(得分:52)
见这里: https://superuser.com/questions/42537/is-there-any-sudo-command-for-windows
根据该命令,admin的命令如下:
runas /noprofile /user:Administrator cmd
答案 1 :(得分:16)
遗憾的是,所有这些答案都忽视了这一点。
这里有2个安全上下文细微差别,我们需要它们重叠。 - “以管理员身份运行” - 更改本地计算机上的执行级别 - “以不同用户身份运行” - 选择您运行该流程的用户凭据。
在工作站上启用UAC时,有些进程拒绝运行,除非提升 - 仅仅是本地“Administrators”组的成员是不够的。如果您的要求还要求您使用备用凭据登录,则我们需要一种方法来调用该进程作为备用凭据和提升。
我发现的东西虽然有点麻烦,但可以使用:
使用Sysinternals psexec实用程序,如下所示:
psexec \\ localworkstation -h -i -u domain \ otheruser exetorun.exe
需要第一个提升才能推送psexec服务。 -h运行新的“远程”(本地)进程,并且-i允许它与桌面交互。
也许还有比这更简单的方法?
答案 2 :(得分:14)
开始 - > shift +命令提示右键单击将有助于用作另一个用户或管理员
答案 3 :(得分:7)
我已经找到了用一条线做到这一点的方法:
runas /user:DOMAIN\USER2 /savecred "powershell -c start-process -FilePath \"'C:\\PATH\\TO\\YOUR\\EXECUTABLE.EXE'\" -verb runAs"
这里有一些技巧。
1 :我们告诉CMD只是将Powershell作为DOMAIN \ USER2运行
2 :我们正在通过" Start-Process"命令Powershell,使用动词" runAs"将DOMAIN \ USER2提升为管理员/提升权限模式。
作为一般说明," FilePath"中的转义字符。参数必须存在(换句话说," \& \\字符组合),单引号(')必须包围EXE路径 - 这样,CMD将FilePath解释为单个字符串,然后Powershell使用单引号将FilePath解释为单个参数。
使用" RunAs"动词在Powershell中提升:http://ss64.com/ps/syntax-elevate.html
答案 4 :(得分:1)
Runas不会以管理员的身份神奇地运行命令,它会将它们作为您提供凭据的任何帐户运行。如果它不是管理员帐户,则runas不关心。
答案 5 :(得分:1)
您可以使用Microsoft Sysinternals Suite https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite
中的psexec.exe示例:
c:\somedir\psexec.exe -u domain\user -p password cmd.exe
答案 6 :(得分:0)
就我而言,我已经以本地管理员身份登录,并且需要以域管理员身份运行CMD,因此对我有用的是从Powershell窗口中运行以下 :
runas / noprofile / user:DOMAIN \ USER“ cmd”
答案 7 :(得分:0)
打开记事本并粘贴以下代码:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c %*'"
@echo on
然后,将文件另存为sudo.cmd
。复制此文件并将其粘贴在C:\Windows\System32
上,或将sudo.cmd
所在的路径添加到PATH环境变量中。
打开命令提示符后,您现在可以运行类似sudo start .
的内容。
如果您希望在运行命令时使终端窗口保持打开状态,请将记事本中的代码更改为此:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k %*'"
@echo on
说明:
powershell -Command
运行powershell命令。
Start-Process
是启动过程的Powershell命令,在本例中为命令提示符。
-Verb RunAs
以管理员身份运行命令。
-Argument-List
运行带有参数的命令。
我们的论点是'/c %*'
。 %*
表示所有参数,因此,如果执行了sudo foo bar
,它将在命令提示符foo bar
中运行,因为参数是foo和bar,并且%*
返回foo bar
。
/c
是用于在命令完成后关闭窗口的cmd参数,而/k
是用于使窗口保持打开状态的cmd参数。
答案 8 :(得分:-1)
最简单的方法是创建一个批处理文件(.bat)并以管理员身份运行它。
右键单击并以“以管理员身份运行”