如何使用普通cmd上的命令行打开提升的命令提示符?
例如,我使用runas /username:admin cmd
但是打开的cmd似乎没有提升!任何解决方案?
答案 0 :(得分:139)
我遇到了同样的问题,我能够以CMD的管理员身份打开CMD的唯一方法是执行以下操作:
powershell -Command "Start-Process cmd -Verb RunAs"
并按 Enter 答案 1 :(得分:33)
根据documentation,Windows安全模型......
根本不授予管理权限 倍。 甚至管理员在标准权限下运行 执行不需要提升的非管理任务 特权。
您在创建新任务对话框中有使用管理员权限创建此任务选项(任务管理器>文件>运行新任务),但没有内置方法可以使用命令行有效提升权限。
但是,您可以使用一些第三方工具(内部依赖Windows API)从命令行提升权限:
答案 2 :(得分:20)
sudo.bat
的文件(您可以使用任何名称替换sudo
)
powershell.exe -Command "Start-Process cmd \"/k cd /d %cd%\" -Verb RunAs"
sudo.bat
移至PATH
中的文件夹;如果您不知道这意味着什么,只需将这些文件移至c:\windows\
sudo
将在“运行”对话框( win + r )或资源管理器地址栏中工作(这是最好的部分:)。sudo.bat
的文件(您可以使用任何名称替换sudo
)
nircmdc elevate cmd /k "cd /d %cd%"
nircmdc.exe
和sudo.bat
移至PATH
的文件夹中;如果您不知道这意味着什么,只需将这些文件移至c:\windows\
sudo
将在“运行”对话框( win + r )或资源管理器地址栏中工作(这是最好的部分:)。答案 3 :(得分:12)
我的信誉不足,无法在最佳答案中添加评论,但是凭借别名的强大功能,您只需输入以下内容即可摆脱困境:
powershell "start cmd -v runAs"
这只是user3018703的简短版本,非常好 解决方案:
powershell -Command "Start-Process cmd -Verb RunAs"
答案 4 :(得分:11)
我一直使用nirsoft程序(例如nircmdc)和sysinternals(例如psexec)。他们非常有帮助。
但是,如果你不想,或者不能,那就是第三方程序,这是另一种方式,纯粹的Windows。
简短回答:您可以在提升时创建具有提升权限的计划任务,然后您可以在不提升的情况下稍后调用。
中等答案:提升创建任务时(但我更喜欢任务调度程序GUI):
schtasks /create /sc once /tn cmd_elev /tr cmd /rl highest /st 00:00
然后,不需要提升,使用
调用schtasks /run /tn cmd_elev
答案很长:有很多烦躁的细节;看我的博客文章"Start program WITHOUT UAC, useful at system start and in batch files (use task scheduler)"
答案 5 :(得分:5)
以下作为批处理文件将打开一个提升的命令提示符,其路径设置为与调用批处理文件的目录相同的目录
set OLDDIR=%CD%
powershell -Command "Start-Process cmd -ArgumentList '/K cd %OLDDIR%' -Verb RunAs "
答案 6 :(得分:3)
我现在已经使用Elevate
了一段时间。
它的描述 - This utility executes a command with UAC privilege elevation. This is useful for working inside command prompts or with batch files.
我将bin.x86-64\elevate.exe
从.zip
复制到C:\Program Files\elevate
,并将该路径添加到我的PATH
。
然后GitBash我可以运行类似elevate sc stop W3SVC
的内容来关闭IIS
服务。
运行该命令会给我UAC
对话框,通过键盘控制正确聚焦,并在接受对话框后返回我的shell。
答案 7 :(得分:3)
...
@ECHO OFF
SETLOCAL EnableDelayedExpansion EnableExtensions
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE
GOTO :EOF
:ELEVATE
SET this="%CD%"
SET this=!this:\=\\!
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('CMD', '/K CD /D \"!this!\"', '', 'runas', 1);close();"
EXIT 1
将此脚本保存为" god.cmd"在你的system32或你的路径指向....
如果你在e:\ mypictures \中打开一个cmd并输入god 它会要求您提供凭据并将您带回管理员那个地方......
答案 8 :(得分:3)
使用/savecred
开关使批处理文件保存实际管理员帐户的凭据。这将首次提示凭据,然后将加密的密码存储在凭证管理器中。然后,对于批次运行的所有后续时间,它将作为完整管理员运行但不提示凭证,因为它们以加密方式存储在凭证管理器中,并且最终用户无法获取密码。以下应该以完全管理员权限打开一个提升的CMD,并且只会在第一次提示输入密码:
START c:\Windows\System32\runas.exe /user:Administrator /savecred cmd.exe
答案 9 :(得分:2)
我最喜欢的方法是使用SysInternals的PsExec.exe,http://technet.microsoft.com/en-us/sysinternals/bb897553
.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe
“-h”开关是那个做魔术的人:
-h如果目标系统是Vista或更高版本,请使用帐户的提升令牌(如果可用)运行该流程。
答案 10 :(得分:2)
与上面的其他一些解决方案类似,我创建了一个elevate
批处理文件,该文件运行一个提升的PowerShell窗口,绕过执行策略以启用从简单命令到批处理文件到复杂PowerShell脚本的所有操作。我建议将其粘贴在C:\ Windows \ System32文件夹中以方便使用。
原始elevate
命令执行其任务,捕获输出,关闭生成的PowerShell窗口,然后返回,将捕获的输出写出到原始窗口。
我创建了两个变体elevatep
和elevatex
,它们分别暂停并保持PowerShell窗口打开以进行更多工作。
https://github.com/jt-github/elevate
如果我的链接死了,这里是原始提升批处理文件的代码:
@Echo Off
REM Executes a command in an elevated PowerShell window and captures/displays output
REM Note that any file paths must be fully qualified!
REM Example: elevate myAdminCommand -myArg1 -myArg2 someValue
if "%1"=="" (
REM If no command is passed, simply open an elevated PowerShell window.
PowerShell -Command "& {Start-Process PowerShell.exe -Wait -Verb RunAs}"
) ELSE (
REM Copy command+arguments (passed as a parameter) into a ps1 file
REM Start PowerShell with Elevated access (prompting UAC confirmation)
REM and run the ps1 file
REM then close elevated window when finished
REM Output captured results
IF EXIST %temp%\trans.txt del %temp%\trans.txt
Echo %* ^> %temp%\trans.txt *^>^&1 > %temp%\tmp.ps1
Echo $error[0] ^| Add-Content %temp%\trans.txt -Encoding Default >> %temp%\tmp.ps1
PowerShell -Command "& {Start-Process PowerShell.exe -Wait -ArgumentList '-ExecutionPolicy Bypass -File ""%temp%\tmp.ps1""' -Verb RunAs}"
Type %temp%\trans.txt
)
答案 11 :(得分:1)
这是与资源管理器集成的方法。 在Windows资源管理器中的任何文件夹上单击鼠标右键时,它将弹出一个额外的菜单项:
以下是步骤:
*使用push而不是cd使其可以在任何驱动器中工作。 :-)
答案 12 :(得分:0)
使用:
start
、run
、cmd
,然后是 control+shift+enter
您将获得 UAC,然后是提升的命令外壳。
答案 13 :(得分:0)
对于Cygwin的粉丝:
cygstart -a runas cmd
答案 14 :(得分:0)
您可以使用以下语法,我有同样的问题,并且认为不需要脚本。
runas / profile / user:domain \ username cmd
这对我有用,在您的网络上可能有所不同。
答案 15 :(得分:0)
按Windows + X键,您现在可以选择具有管理员权限的Powershell或命令提示符。如果您是管理员,则可以使用。如果系统不是您的系统,则该功能可能无法使用。
答案 16 :(得分:0)
可以使用临时环境变量与提升的快捷方式一起使用(
start.cmd
setx valueName_betterSpecificForEachCase %~dp0
"%~dp0ascladm.lnk"
ascladm.lnk(快捷方式)
_ properties\advanced\"run as administrator"=yes
(要更改路径,您需要临时创建env.Variable
)
_ properties\target="%valueName_betterSpecificForEachCase%\ascladm.cmd"
_ properties\"start in"="%valueName_betterSpecificForEachCase%"
ascladm.cmd
setx valueName_betterSpecificForEachCase=
reg delete HKEY_CURRENT_USER\Environment /F /V valueName_betterSpecificForEachCase
"%~dp0fileName_targetedCmd.cmd"
)(targetedCmd在提升的cmd窗口中执行)
尽管它是3个文件,但是您可以将所有内容(包括targetedCmd)放在某个子文件夹中(不要忘了在文件夹中添加folderName),然后将“ start.cmd”重命名为targeted的一个名称
对我来说,这似乎是最本机的方式,而cmd没有所需的命令
答案 17 :(得分:0)
我不确定工具ExecElevated.exe(13KB)是否可以完成这项任务....但它可能会。 或者至少对那些有类似需求的人有用,他们像我一样来到这个页面(但我没有找到解决方案,所以我最终在.Net中创建了这个工具)。
它将使用提升的令牌执行应用程序(在管理员模式下)。 但是你会得到一个UAC对话框来确认! (如果UAC已被禁用,可能没有,但尚未对其进行测试)。
调用该工具的帐户也必须有admin。权利当然。
使用示例:
ExecuteElevated.exe "C:\Utility\regjump.exe HKCU\Software\Classes\.pdf"
答案 18 :(得分:-1)
我通过在 cmd
中使用以下命令轻松完成了此操作runas / netonly / user:Administrator \ Administrator cmd
键入此命令后,您必须输入管理员密码(如果您不知道管理员密码,请将其保留为空白,然后按 Enter 或键入对我有用的东西)。>
答案 19 :(得分:-1)
Dheeraj Bhaskar使用Powershell的方法中缺少空间,至少对于Windows 10的Powershell化身而言。
sudo.bat中的命令行应该是
powershell.exe -Command "Start-Process cmd \"/k cd /d %cd% \" -Verb RunAs"
请注意%cd%
后的多余空间;)Frode
答案 20 :(得分:-1)
只需使用以下命令: Runas / noprofile / user:管理员cmd
答案 21 :(得分:-4)
我使用runas /user:domainuser@domain cmd
成功打开了一个提升的提示符。
答案 22 :(得分:-4)
有几种方法可以打开高架cmd,但只有您的方法可以在标准命令提示符下运行。您只需要user
而不是username
:
runas /user:machinename\adminuser cmd
请参阅Microsoft community的相关帮助。