Windows 용 명령 줄을 사용하여 상승 된 cmd를 여는 방법은 무엇입니까?


109

일반 cmd에서 명령 줄을 사용하여 관리자 권한 명령 프롬프트를 열려면 어떻게합니까?

예를 들어, 나는 사용 runas /username:admin cmd하지만 열린 cmd가 상승하지 않는 것 같습니다! 해결책이 있습니까?


모든 답변을 시도했습니다. 소프트웨어없이 가장 유용한 답변은 stackoverflow.com/a/40942828/9217577
TheGuardener

답변:


165

동일한 문제가 발생했으며 CMD에서 관리자로 CMD를 열 수있는 유일한 방법은 다음을 수행하는 것입니다.

  1. CMD 열기
  2. 쓰고 powershell -Command "Start-Process cmd -Verb RunAs"누르기Enter
  3. CMD를 관리자로 열 것인지 묻는 팝업 창이 나타납니다.

2
좋은 대답입니다. 나는 그것을 하나의 명령 줄에서 실행하도록 추가하고 편집했습니다!
Preet Sangha

1
나는 이것으로 배치 파일을 생성하고 그것을 내 윈도우 폴더에 admincmd.bat로 저장했다. 그래서 내가해야 할 일은 "admincmd"를 입력하고 관리자 cmd를 열기 만하면된다. 는 비 관리자에 cmd 창을 닫도록 출구 ")
토니 브릭스

끝에 cmd (및 모든 매개 변수)를 배치하지 않는 이유는 무엇입니까? 가독성 관점에서 명령을 갖는 것은 이상합니다.
Eric Fossum

38

문서 에 따르면 Windows 보안 모델은 ...

항상 관리 권한을 부여하지 않습니다. 관리자도 높은 권한이 필요하지 않은 비 관리 작업을 수행 할 때 표준 권한으로 실행됩니다 .

당신은이 없습니다 관리 권한이 작업 만들기 에서 옵션을 새 작업 만들기 (대화 상자에서 새 작업을 실행하여 작업 관리자> 파일> ),하지만 거기에 내장되는 방식으로 명령 줄을 사용하여 효율적으로 권한 상승 특권.

그러나 명령 줄에서 권한을 높이는 데 사용할 수있는 타사 도구 (내부적으로 Windows API에 의존)가 있습니다.

NirCmd :

  1. 그것을 다운로드하고 압축을 풉니 다.
  2. nircmdc elevate cmd

windosu :

  1. 그것을 설치하십시오 : npm install -g windosu( 설치된 node.js 필요 )
  2. sudo cmd

3
감사합니다, nircmdc elevate route delete 0.0.0.0 mask 0..0.0 192.168.1.1드디어 일했습니다. 다른 runas /user:...방법은 이미 관리자 임에도 불구하고 암호를 입력하라는 메시지를 표시합니다 (킬드 배치 모드).
Marcos

감사합니다nircmdc elevate cmd
tim

4
intalling 후 nircmdLinux처럼 작동하려면 다음 내용으로 경로에 파일을 sudo만듭니다 .. 예를 들면 다음과 같습니다sudo.batnircmd elevate %*sudo net stop W3SVC
Kip

1
나는 windosu가 이것을하는 가장 간단하고 우아한 방법이라고 생각합니다. 특히 당신이 개발자라면 ... 감사합니다. 난 괜찬아 시스템에 오전 같은 느낌 : D
엠마뉴엘 Mahuni

사랑받는 windosu:)
Finlay Roelofs

32

상위 답변에 댓글을 추가 할만한 평판이 충분하지 않지만 별칭의 힘을 사용하면 다음을 입력하는 것만으로도 벗어날 수 있습니다.

powershell "start cmd -v runAs"

이것은 user3018703 우수한 솔루션의 짧은 버전입니다.

powershell -Command "Start-Process cmd -Verb RunAs"

26

여기에서 다른 답변을 시도한 후 간단한 방법

방법 1 : 타사 프로그램없이 (이것을 사용했습니다)

  1. 다음 내용으로 (원하는 이름으로 sudo.bat바꿀 수 있음) 이라는 파일을 만듭니다.sudo powershell.exe -Command "Start-Process cmd \"/k cd /d %cd%\" -Verb RunAs"
  2. sudo.bat의 폴더로 이동 하십시오 PATH. 그게 무슨 뜻인지 모르겠다면이 파일을c:\windows\
  3. 이제 sudo실행 대화 상자 ( win+r) 또는 탐색기 주소 표시 줄에서 작동 합니다 (가장 좋은 부분입니다 :)).

방법 2 : 타사 프로그램 사용

  1. NirCmd를 다운로드 하고 압축을 풉니 다.
  2. 다음 내용으로 (원하는 이름으로 sudo.bat바꿀 수 있음) 이라는 파일을 만듭니다.sudo nircmdc elevate cmd /k "cd /d %cd%"
  3. nircmdc.exesudo.bat폴더로 이동 하십시오 PATH. 그게 무슨 뜻인지 모르겠다면이 파일을c:\windows\
  4. 이제 sudo실행 대화 상자 ( win+r) 또는 탐색기 주소 표시 줄에서 작동 합니다 (가장 좋은 부분입니다 :)).

두 솔루션 작동하지만, 불행하게도 그들은 발생합니다 UAC의 상단 (z 순서 현명한) 그러나에 게재 대화 하지 점점 초점을 맞추고 . (Win10x64의 v1607의 build14393.447에서 테스트.)
Ogmios

@Ogmios는 다소 이상합니다. 이렇게 시작하지 않으면 대화 상자가 제대로 작동합니까? 나는 이러한 문제없이 이것을 매우 행복하게 사용하고 있습니다. 변경 한 다른 구성 때문일 수 있습니다.
Dheeraj Bhaskar

예, UAC 대화 상자는 다른 모든 상황에서 예상대로 작동합니다. 이것은 유일한 예외입니다. 물론 다른 방식으로 시스템을 변경했지만이 대화 상자에 숨겨진 영향을 미칠 수있는 것은 발견하지 못했습니다.
Ogmios

@Ogmios 죄송합니다 친구, 나는 이것을 고칠 수있는 다른 어떤 것도 생각할 수 없습니다. 다른 솔루션을 시도하여 더 나은지 확인해야합니다. 건배
Dheeraj 바스 카르

powershell은 타사는 아니지만 주식 프로그램이 아니며 목표를 달성하기 위해 타사 프로그램을 작성하는 것과 같습니다.
undrline

13

나는 항상 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

긴 답변 : 안절부절 한 세부 사항이 많이 있습니다. 내 블로그 항목 "UAC없이 프로그램 시작, 시스템 시작 및 배치 파일에서 유용함 (작업 스케줄러 사용)"참조


8

다음 은 배치 파일로 배치 파일이 호출 된 경로와 동일한 디렉토리로 설정된 경로로 관리자 권한 명령 프롬프트 엽니 다.

set OLDDIR=%CD%
powershell -Command "Start-Process cmd -ArgumentList '/K cd %OLDDIR%' -Verb RunAs "

5

내가 가장 좋아하는 방법은 http://technet.microsoft.com/en-us/sysinternals/bb897553에있는 SysInternals의 PsExec.exe를 사용하는 것입니다.

.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe

"-h"스위치는 마법을 수행하는 스위치입니다.

-h 대상 시스템이 Vista 이상인 경우 가능한 경우 계정의 상승 된 토큰으로 프로세스를 실행합니다.


1
이 작업을 수행하려면 psexec.exe의 속성을 편집하고 호환성 탭에서 "관리자 권한으로 실행"을 선택해야합니다. 그렇지 않으면 오류가 발생합니다. PSEXESVC가 설치되지 않았습니다. 그러나 psexec는 cmd.exe의 탭 키에 문제를 일으 킵니다. 탭을 사용하여 폴더 이름을 완성 할 수 없습니다.
Peter Quiring 2015-08-27

어떤 환경에서 시도했는지 확실하지 않지만 "관리자 권한으로 실행"설정을 변경할 필요가 없습니다 (원격 컴퓨터에서 cmd.exe를 실행하려고합니까?). 또한 탭 키에 문제가 없습니다. 파일 및 폴더 이름을 성공적으로 완료 할 수 있습니다 (최소한 cmd 및 PowerShell 명령 줄에서 실행되는 Win8.1 및 Win10에서 테스트 됨)
David Rodriguez

Win10을 사용하고 있으며 로컬에서 실행 중입니다. 왜 당신이 아닌 나에게 일어나는지 잘 모르겠습니다. nircmd가 작동하도록했는데 탭 문제가 발생하지 않습니다.
Peter Quiring

또한 탭 키로 자동 완성 할 수 없지만 적어도 이것은 다른 사용자의 컨텍스트에서 상승 된 cmd 프롬프트를 열 것입니다. 위의 이전 방법은 시도했을 때 달성하지 못한 것 같습니다. '-h'플래그는 훌륭하고 (Windows 10) 대우를 작동합니다.
user1840734

4

/savecred스위치 를 사용하여 배치 파일이 실제 관리자 계정의 자격 증명을 저장하도록 합니다. 처음에 자격 증명을 입력하라는 메시지가 표시되고 자격 증명 관리자에 암호화 된 암호가 저장됩니다. 그런 다음 이후의 모든 배치 실행에 대해 전체 관리자로 실행되지만 자격 증명 관리자에 암호화되어 저장되고 최종 사용자가 암호를 얻을 수 없기 때문에 자격 증명을 요구하지 않습니다. 다음은 전체 관리자 권한으로 상승 된 CMD를 열어야하며 처음에만 암호를 묻는 메시지가 표시됩니다.

START c:\Windows\System32\runas.exe /user:Administrator /savecred cmd.exe

3

Dheeraj 바스 카르 작업에 의해 제공되는 두 솔루션 있지만, 불행하게도 그들은 발생합니다 UAC의 상단 (z 순서 현명한)에 게재 대화 만 하지집중 하여 I 중 하나를 필요로 (포커스 창은 발신자 cmd를 / PowerShell을 창입니다) 마우스를 잡고 "예"를 클릭하거나 Alt + Shift + Tab을 사용하여 UAC 창을 선택합니다. (Win10x64 v1607 build14393.447에서 테스트 됨; UAC = "[...] 어둡게하지 마십시오 [...]" .)

다음 솔루션은 두 개의 파일을 사용하기 때문에 약간 어색하지만 올바른 포커스 순서를 유지하므로 추가 마우스 / 키보드 작업이 필요하지 않습니다 (UAC 대화 상자 확인 : Alt + Y ).

  1. cmdadm.lnk (바로 가기 속성 / 고급 ... / 관리자 권한으로 실행 = ON) %SystemRoot%\System32\cmd.exe /k "cd /d"
  2. su.bat @start cmdadm.lnk %cd%

으로 실행합니다 su.


불행히도 이것을 재현 할 수 없습니다. 내 솔루션 중 하나를 사용할 때마다. 내 UAC 프롬프트됩니다 초점을 맞추고 상단에
Dheeraj 바스 카르에게

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키보드 제어에 적절하게 초점을 맞춘 대화 상자가 표시되고 대화 상자를 수락하면 쉘로 돌아갑니다.


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

이 스크립트를 system32 또는 경로가 지정하는 모든 곳에 "god.cmd"로 저장하십시오 ....

e : \ mypictures \에서 cmd를 열고 god를 입력하면 자격 증명을 요청하고 관리자와 동일한 위치로 돌아갑니다.


1
powershell은 멋지지만 모듈이 필요합니다 ... im oldscool ... 시스템이 필요합니다 ...
jOte-

이 고도화 방법 / 트릭은 긴 경로 / 파일 이름에서도 작동합니까? 아니면 "% ~ snx0"또는 "% ~ dpsnx0"을 대신 사용해야합니까?
script'n'code

2

위의 다른 솔루션 중 일부와 유사하게 elevate , 간단한 명령에서 배치 파일, 복잡한 PowerShell 스크립트에 이르기까지 모든 것을 실행할 수 있도록 실행 정책을 우회하여 관리자 권한 PowerShell 창을 실행 배치 파일을 . 사용하기 쉽도록 C : \ Windows \ System32 폴더에 보관하는 것이 좋습니다.

원래 elevate명령은 작업을 실행하고 출력을 캡처하고 생성 된 PowerShell 창을 닫은 다음 반환되어 캡처 된 출력을 원래 창에 기록합니다.

더 많은 작업을 위해 PowerShell 창을 각각 일시 중지하고 열어 두는 두 가지 변형 elevatep및을 만들었습니다 elevatex.

https://github.com/jt-github/elevate

그리고 내 링크가 죽는 경우를 대비하여 원본 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
)

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 포함)을 배치하고 (폴더 이름을 패치에 추가하는 것을 잊지 마십시오) "start.cmd"의 이름을 target의 하나의 이름으로 바꿀 수 있습니다.

나에게는 cmd에 필요한 명령이 없지만 가장 기본적인 방법으로 보입니다.


위의 모든 솔루션을 읽고 이해했습니다. 나는 당신의 단계를 이해하지 못합니다. 나는 최고의 장단점을 가진 솔루션을 선택하고 있습니다.
Dzmitry Lahoda

0

ExecElevated.exe (13KB) 도구 가 작업을 수행할지 모르겠습니다 ....하지만 그럴 수도 있습니다. 또는 적어도 내가했던 것처럼이 페이지를 찾은 비슷한 요구를 가진 다른 사람들에게 유용합니다 (하지만 해결책을 찾지 못해서 .Net에서 직접 도구를 만들었습니다).

관리자 모드에서 상승 된 토큰으로 애플리케이션을 실행합니다. 그러나 확인을 위해 UAC 대화 상자가 표시됩니다! (UAC가 비활성화 된 경우에는 테스트하지 않았을 수 있습니다.)

도구를 호출하는 계정에도 관리자가 있어야합니다. 물론 권리.

사용 예 :

ExecuteElevated.exe "C:\Utility\regjump.exe HKCU\Software\Classes\.pdf"

2
난 그냥 "이 힘의 작품은 아직 테스트하지 않은"로 답을 사랑하고, "확실하지"를 물론 하나 ....의
Giridhar Karnik

1
링크가 끊어졌습니다.
Dzmitry Lahoda

링크는 그것에 대해 죄송합니다 다시 설정
MrCalvin

0

Powershell을 사용한 Dheeraj Bhaskar의 방법에는 적어도 Powershell의 Windows 10 화신에 대한 공간이 없습니다.

sudo.bat 내부의 명령 줄은 다음과 같아야합니다.

powershell.exe -Command "Start-Process cmd \"/k cd /d %cd% \" -Verb RunAs"

% cd % 뒤의 추가 공간에 유의하십시오.

;) 프로드


0

탐색기와 통합하는 방법은 다음과 같습니다. Windows 탐색기 내의 폴더를 마우스 오른쪽 버튼으로 클릭하면 추가 메뉴 항목이 나타납니다.

Windows 탐색기 통합

단계는 다음과 같습니다.

  1. 다음 키를 만듭니다. \ HKEY_CLASSES_ROOT \ Folder \ shell \ dosherewithadmin
  2. 기본값을 메뉴 항목 텍스트로 표시 할 값으로 변경합니다. 예 : "DOS Shell as Admin"
  3. 다른 키를 만듭니다. \ HKEY_CLASSES_ROOT \ Folder \ shell \ dosherewithadmin \ command
  4. 기본값을 ipsis litteris로 변경합니다. powershell.exe -Command "Start-Process -Verb RunAs 'cmd.exe'-Args '/ k pushd"% 1 "'"
  5. 끝났다. 이제 폴더를 마우스 오른쪽 버튼으로 클릭하면 다른 항목 내에서 항목을 볼 수 있습니다.

* CD 대신 pushd를 사용하여 모든 드라이브에서 작동하도록합니다. :-)


-1

다음 구문을 사용할 수 있으며 동일한 질문이 있었고 스크립트가 필요하지 않다고 생각했습니다.

runas / profile / user : domain \ username cmd

이것은 나를 위해 일했으며 네트워크에서 다를 수 있습니다.


-1

다음 명령을 사용하십시오. runas / noprofile / user : administrator cmd


-2

cmd 에서 다음 명령을 사용하여 쉽게 수행했습니다.

runas / netonly / user : Administrator \ Administrator cmd

이 명령을 입력 한 후 관리자 암호를 입력해야합니다 (관리자 암호를 모르면 공백으로두고 Enter를 누르 거나 무언가 를 입력하십시오 .) ..


나에게 도움이되지 않았다
드미트리 Lahoda에게

@DzmitryLahoda 당신이 얻은 오류를 간략하게 설명해 주시겠습니까?
Harish Regada 2019 년

-2

Windows + X 키를 누르면 이제 관리자 권한이있는 Powershell 또는 명령 프롬프트를 선택할 수 있습니다. 관리자 인 경우 작동합니다. 시스템이 귀하의 것이 아닌 경우 기능을 사용하지 못할 수 있습니다.


-5

상승 된 cmd를 여는 방법에는 여러 가지가 있지만 표준 명령 프롬프트에서는 사용자의 방법 만 작동합니다. 당신은 그냥 넣을 필요가 user없습니다 username:

runas /user:machinename\adminuser cmd

Microsoft 커뮤니티 에서 관련 도움말을 참조하십시오 .


4
상승 된 cmd 창을 열고 "whoami"를 입력하면 상승되지 않은 창과 동일한 결과를 가져 오기 때문에 이것은 상승 된 명령을 실행하는 것과는 다릅니다. 두 경우 모두 "whoami / all"을 실행하면 동일한 사용자에 대한 권한의 차이를 볼 수 있습니다.
Constantino Cronemberger 2015

-5

나는 runas /user:domainuser@domain cmd승격 된 프롬프트를 성공적으로 열었습니다.


다른 사용자의 자격 증명이 필요합니다. 이미 관리자이고 응용 프로그램을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택하고 암호가 요청되지 않은 경우와 같이 상승 된 권한으로 실행하려면 확인 대화 상자 만 있으면 다른 것이 필요합니다. 나는 그 대답을 찾기 위해 여기에 왔지만 여기에 있지 않은 것 같습니다.
Paul-Sebastian Manole
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.