일반 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 cmdnpm install -g windosu( 설치된 node.js 필요 )sudo cmdnircmdc elevate route delete 0.0.0.0 mask 0..0.0 192.168.1.1드디어 일했습니다. 다른 runas /user:...방법은 이미 관리자 임에도 불구하고 암호를 입력하라는 메시지를 표시합니다 (킬드 배치 모드).
nircmdc elevate cmd
nircmdLinux처럼 작동하려면 다음 내용으로 경로에 파일을 sudo만듭니다 .. 예를 들면 다음과 같습니다sudo.batnircmd 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승격 된 프롬프트를 성공적으로 열었습니다.