일반 cmd에서 명령 줄을 사용하여 관리자 권한 명령 프롬프트를 열려면 어떻게합니까?
예를 들어, 나는 사용 runas /username:admin cmd
하지만 열린 cmd가 상승하지 않는 것 같습니다! 해결책이 있습니까?
일반 cmd에서 명령 줄을 사용하여 관리자 권한 명령 프롬프트를 열려면 어떻게합니까?
예를 들어, 나는 사용 runas /username:admin cmd
하지만 열린 cmd가 상승하지 않는 것 같습니다! 해결책이 있습니까?
답변:
동일한 문제가 발생했으며 CMD에서 관리자로 CMD를 열 수있는 유일한 방법은 다음을 수행하는 것입니다.
powershell -Command "Start-Process cmd -Verb RunAs"
누르기Enter문서 에 따르면 Windows 보안 모델은 ...
항상 관리 권한을 부여하지 않습니다. 관리자도 높은 권한이 필요하지 않은 비 관리 작업을 수행 할 때 표준 권한으로 실행됩니다 .
당신은이 없습니다 관리 권한이 작업 만들기 에서 옵션을 새 작업 만들기 (대화 상자에서 새 작업을 실행하여 작업 관리자> 파일> ),하지만 거기에 내장되는 방식으로 명령 줄을 사용하여 효율적으로 권한 상승 특권.
그러나 명령 줄에서 권한을 높이는 데 사용할 수있는 타사 도구 (내부적으로 Windows API에 의존)가 있습니다.
nircmdc elevate cmd
npm install -g windosu
( 설치된 node.js 필요 )sudo cmd
nircmdc elevate route delete 0.0.0.0 mask 0..0.0 192.168.1.1
드디어 일했습니다. 다른 runas /user:...
방법은 이미 관리자 임에도 불구하고 암호를 입력하라는 메시지를 표시합니다 (킬드 배치 모드).
nircmdc elevate cmd
nircmd
Linux처럼 작동하려면 다음 내용으로 경로에 파일을 sudo
만듭니다 .. 예를 들면 다음과 같습니다sudo.bat
nircmd elevate %*
sudo net stop W3SVC
windosu
:)
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) 또는 탐색기 주소 표시 줄에서 작동 합니다 (가장 좋은 부분입니다 :)).나는 항상 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없이 프로그램 시작, 시스템 시작 및 배치 파일에서 유용함 (작업 스케줄러 사용)"참조
내가 가장 좋아하는 방법은 http://technet.microsoft.com/en-us/sysinternals/bb897553에있는 SysInternals의 PsExec.exe를 사용하는 것입니다.
.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe
"-h"스위치는 마법을 수행하는 스위치입니다.
-h 대상 시스템이 Vista 이상인 경우 가능한 경우 계정의 상승 된 토큰으로 프로세스를 실행합니다.
/savecred
스위치 를 사용하여 배치 파일이 실제 관리자 계정의 자격 증명을 저장하도록 합니다. 처음에 자격 증명을 입력하라는 메시지가 표시되고 자격 증명 관리자에 암호화 된 암호가 저장됩니다. 그런 다음 이후의 모든 배치 실행에 대해 전체 관리자로 실행되지만 자격 증명 관리자에 암호화되어 저장되고 최종 사용자가 암호를 얻을 수 없기 때문에 자격 증명을 요구하지 않습니다. 다음은 전체 관리자 권한으로 상승 된 CMD를 열어야하며 처음에만 암호를 묻는 메시지가 표시됩니다.
START c:\Windows\System32\runas.exe /user:Administrator /savecred cmd.exe
Dheeraj 바스 카르 작업에 의해 제공되는 두 솔루션 있지만, 불행하게도 그들은 발생합니다 UAC의 상단 (z 순서 현명한)에 게재 대화 만 하지 지 집중 하여 I 중 하나를 필요로 (포커스 창은 발신자 cmd를 / PowerShell을 창입니다) 마우스를 잡고 "예"를 클릭하거나 Alt + Shift + Tab을 사용하여 UAC 창을 선택합니다. (Win10x64 v1607 build14393.447에서 테스트 됨; UAC = "[...] 어둡게하지 마십시오 [...]" .)
다음 솔루션은 두 개의 파일을 사용하기 때문에 약간 어색하지만 올바른 포커스 순서를 유지하므로 추가 마우스 / 키보드 작업이 필요하지 않습니다 (UAC 대화 상자 확인 : Alt + Y ).
%SystemRoot%\System32\cmd.exe /k "cd /d"
@start cmdadm.lnk %cd%
으로 실행합니다 su
.
나는 사용하고있다 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
키보드 제어에 적절하게 초점을 맞춘 대화 상자가 표시되고 대화 상자를 수락하면 쉘로 돌아갑니다.
..
@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를 입력하면 자격 증명을 요청하고 관리자와 동일한 위치로 돌아갑니다.
위의 다른 솔루션 중 일부와 유사하게 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
)
임시 환경 변수를 사용하여 상승 된 바로 가기 (
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에 필요한 명령이 없지만 가장 기본적인 방법으로 보입니다.
ExecElevated.exe (13KB) 도구 가 작업을 수행할지 모르겠습니다 ....하지만 그럴 수도 있습니다. 또는 적어도 내가했던 것처럼이 페이지를 찾은 비슷한 요구를 가진 다른 사람들에게 유용합니다 (하지만 해결책을 찾지 못해서 .Net에서 직접 도구를 만들었습니다).
관리자 모드에서 상승 된 토큰으로 애플리케이션을 실행합니다. 그러나 확인을 위해 UAC 대화 상자가 표시됩니다! (UAC가 비활성화 된 경우에는 테스트하지 않았을 수 있습니다.)
도구를 호출하는 계정에도 관리자가 있어야합니다. 물론 권리.
사용 예 :
ExecuteElevated.exe "C:\Utility\regjump.exe HKCU\Software\Classes\.pdf"
Powershell을 사용한 Dheeraj Bhaskar의 방법에는 적어도 Powershell의 Windows 10 화신에 대한 공간이 없습니다.
sudo.bat 내부의 명령 줄은 다음과 같아야합니다.
powershell.exe -Command "Start-Process cmd \"/k cd /d %cd% \" -Verb RunAs"
% cd % 뒤의 추가 공간에 유의하십시오.
;) 프로드
탐색기와 통합하는 방법은 다음과 같습니다. Windows 탐색기 내의 폴더를 마우스 오른쪽 버튼으로 클릭하면 추가 메뉴 항목이 나타납니다.
단계는 다음과 같습니다.
* CD 대신 pushd를 사용하여 모든 드라이브에서 작동하도록합니다. :-)
cmd 에서 다음 명령을 사용하여 쉽게 수행했습니다.
runas / netonly / user : Administrator \ Administrator cmd
이 명령을 입력 한 후 관리자 암호를 입력해야합니다 (관리자 암호를 모르면 공백으로두고 Enter를 누르 거나 무언가 를 입력하십시오 .) ..
상승 된 cmd를 여는 방법에는 여러 가지가 있지만 표준 명령 프롬프트에서는 사용자의 방법 만 작동합니다. 당신은 그냥 넣을 필요가 user
없습니다 username
:
runas /user:machinename\adminuser cmd
Microsoft 커뮤니티 에서 관련 도움말을 참조하십시오 .
나는 runas /user:domainuser@domain cmd
승격 된 프롬프트를 성공적으로 열었습니다.