상승 된 권한으로 명령 줄에서 프로그램을 실행하는 방법


42

이미 비 승강 된 명령 줄에있을 때 상승 된 권한으로 프로그램이나 명령을 실행하는 방법이 있습니까?

프로그램 바로 가기를 클릭하고 선택했을 때 수행되는 것과 정확히 동일한 작업입니다. 관리자 권한으로 실행 .

그만큼 루나 스 명령은 아마도 해결책이 아닙니다. 암호를 묻는 메시지가 표시되지만 UAC 대화.

답변:


15

이 유틸리티처럼 보입니다 - 숨겨진 시작 - / uac 스위치를 사용하면 원하는대로 할 수 있습니다. 다음은 명령 행 예제입니다.

hstart /UAC "notepad.exe"

runas처럼 암호를 묻는 대신 UAC 대화 상자가 나타납니다.

enter image description here


1
경고 : 그 작은 유틸리티는 20 $입니다. 작은 주머니를 가진 사람들은 RunAdmin을 대신 사용하십시오 :)
— Rigel

이것은 Windows 10에서는 나타나지 않습니다.
— will

45

이있다 이것을하는 방법 PowerShell :

PS> Start-Process powershell -Verb runAs

19
잘 작동하는 것 같습니다. 명령 줄에서 예를 들어 할 수 있습니다. powershell -Command "Start-Process 'C:\program.exe' -Verb runAs"
— marsze

7
이것은 올바른 / 최상의 답변으로 표시되어야합니다 IMO - 그것은 제 3 자 유틸리티없이 작동합니다.
— crimbo

5
@marsze - Fwiw, 인수들 가장 단순한 경우에는 자신의 작은 따옴표로 묶습니다. powershell -Command "Start-Process 'gvim' 'c:\windows\system32\drivers\etc\hosts' -Verb runAs". 감사!
— ruffin

관리자 권한 명령 프롬프트의 출력을 현재 실행중인 스크립트로 파이프하는 방법은 무엇입니까?
— wheeler

@wheeler, 나는 거의 확신 할 수 없다.하지만 종료 코드를 반환 할 수있다. $p = Start-Process powershell -Verb runAs -ArgumentList "-Command ``"& { ``$Host.SetShouldExit(123) }``"" -PassThru; $p.ExitCode
— Rustam

3

빌딩 루스 탐 '에스 대답 , 당신은 할 수 :

  • 만들기 su.bat 배치 파일을 기본 한 % PATH % 어딘가에 다음 한 줄짜리 파일로 저장하십시오 : @powershell start -verb runas %*
  • 이 함수를 PowerShell에 추가하십시오. $ profile : function su {start -verb runas @args}

이제 문제를 해결할 수 있습니다. su <command> [parameters] 어느 쪽 쉘이라도!


2

RunAdmin UAC가 표시되는 권한 상승 명령 줄에서 프로그램을 실행할 수있는 작은 유틸리티 (150Kb)입니다. 그리고 숨겨진 시작과 반대되는 것은 자유입니다.


2

이 작업은 Windows 10을 포함한 모든 플랫폼에서 가능합니다. 필요하면 간단하게 접근 할 수 있습니다. 힘 .

나는 작은 이름의 스크립트를 만들었고, sudo.cmd Linux sudo 명령에 이름이 지정됩니다. 생각만큼 잘 작동합니다. 필자는 요구 사항, 따라야 할 단계 및 스크립트의 예를 아래에 요약했습니다. 먼저 경고의 말.

경고 : 명령은 Windows 시스템 디렉토리에서 기본적으로 실행됩니다. 너는 ~을 원할거야. cd 안전한 곳으로.

요구 사항 :

  • Windows에서 권한이있는 관리자 권한으로 명령 실행 .CMD
    또는 cmd-shell을 사용하십시오.
  • 명령에 대한 일반적인 Windows 권한 검사가 필요합니다.
    • 즉, 명령이 이미 작동하지 않으면 작동하지 않습니다. 권한있는 계정으로 로그인했습니다.
  • 관리자 권한으로 명령을 실행하고 스크립트 내에서 호출됩니다. 명령이 완료 될 때까지 기다리십시오.
  • 그것은 항상 작동하므로 간단하게
  • 이미 로그인 한 경우 매번 암호를 입력 할 필요가 없습니다.
    • 더 나은 방법 한번 비밀번호를 입력 할 수 있다면 진짜 sudo Linux에서 명령.

해결책 :

  1. 전달 된 모든 인수를 실행하는 명령 스크립트를 작성하십시오. sudo.cmd
  2. 명령 줄 스크립트 이름을 Windows 단축키로 만듭니다. sudo.lnk.
  3. 넣어 sudo 당신의 창문에서 짧은 컷 그래서 볼 수 있습니다.
  4. 단축키 속성을 편집하고 Start in: 빈 경로.
  5. [ Advanced ] 버튼 - 확인 Run as Administrator
  6. 창 경로에서 단축키를 사용하려면 PATHEXT 환경 변수를 사용하십시오.
d:> echo %PATHEXT%
    .lnk;.EXE;.CMD;.BAT;.COM

입력 할 때 sudo dir 명령 행에서 Windows는

User Account Control

Do you want to allow this app to make changes to this device?

  [YES]  [NO]

액세스 제어 팝업. "[ NO ] "아무 일도 일어나지 않을 것입니다. 윈도우즈는" Access is denied. " 메시지.

"[ YES ] "디렉토리 명령은 상승 된 권한으로 실행됩니다 물론 서비스에 대한 중지 또는 쿼리와 같은 좀 더 흥미로운 것을 원할 것입니다 :

 sudo sc query SDRSVC

SDRSVC는 "Windows 백업 서비스"의 서비스 이름이며 별도의 Cmd 창에 다음 내용이 표시됩니다.

  [sudo]

   administrator
  ---------------

  sc query SDRSVC

SERVICE_NAME: SDRSVC
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

  [done]

Press any key to continue . . .

그만큼 sudo.cmd 스크립트 자체는 매우 기본입니다. 내가 말했듯이 나의 필요는 간단합니다. 테스트를 위해 코드를 배포하는 동안 서비스를 중지하고 시작하기 만하면됩니다.

sudo.cmd:

 @echo off
 @rem    sudo.cmd
         cd /d %temp%
 @echo.
 @echo.   administrator
 @echo.  ---------------
         cd 
 @echo.
 @rem  _________________________________________________
 @rem      -- Print usage . . .
        @if    [""]      ==["%~1"]   goto USAGE
        @if /i ["--HELP"]==["%~1"]   goto USAGE
 @rem  _________________________________________________
 @rem
 @echo.  %*
 @rem
         %*
 @rem
         set EXIT_STATUS=%ERRORLEVEL%
 @rem  -- -- -- -- --  
 @echo.
 @echo.  [done]
 @rem  ______________________________________________________
 :Exit
 @echo.
 @pause
  exit /b  %EXIT_STATUS%
 @rem  ______________________________________________________
 :USAGE
 @echo.
 @echo  ^Usage:
 @echo.    sudo ^<complete command line^>
 @echo.
 @echo.  Attempts to rune the: ^<complete command line^>
 @echo.  under Administrator priviliges.  Relies on Windows 
 @echo.  prompt for elevated privileges.
 @rem  ______________________________________________________
 @goto Exit

그만큼 pause 명령은 결과를 검토 할 때까지 대기합니다. 너가 가지고가는 경우에. pause 관리 창을 닫으면 명령이 작동하는지 여부를 알 수 없습니다. 그만큼 ERRORLEVEL 명령에서 반환됩니다.


0

보세요 시작 ++ -이 기능은 다른 많은 유용한 기능과 함께 제공됩니다. UAC 프롬프트로 실행하려면 sudo 다음과 같이 명령 줄에서 프로그램 이름을 입력하십시오.

alt text

다음은 몇 가지 다른 기능입니다 (직접 추가 할 수도 있음).

alt text

alt text


잘 보입니다. 그러나 이미 Start ++와 비슷한 기능을 가진 FARR을 사용합니다 (물론 sudo를 제외하고).
— Lukas Cenovsky

2
링크에 brandontools.com에 오신 것을 환영합니다. 이 웹 페이지는 무료로 주차되어 있습니다. brandontools.com을 사고 싶습니까?
— xmojmr

1
@ xmojmr이 말했듯이 그 사이트는 죽었습니다. 새로운 위치를 알고있는 경우 (내가 너무 빨리 찾지 못했을 때), 대답의 링크를 업데이트해야합니다.
— Abel

0

이것은 Windows 10에서 작동하며 다른 Windows 버전에서는 테스트하지 않았습니다.

상승 된 권한을 요구하는 powershell을 시작하는 cmd.exe에서 관리자 권한으로 메모장을 여는 예입니다.

C:\>start powershell -command "&{start-process -filepath notepad -verb RunAs}"

이렇게하면 [Yes] [No]로 UAC 대화 상자 (활성화 된 경우)가 나타나거나 관리자 암호를 묻습니다.

메모장에서 hosts 파일을 여는 또 다른 예는 다음과 같습니다.

C:\>start powershell -command "&{start-process -filepath notepad 'C:\Windows\System32\drivers\etc\hosts' -verb RunAs}"

추가 정보 : https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6


-1

__COMPAT_LAYER = RunAsAdmin을 설정할 수 있습니다. 그런 다음 명령은 별도의 상승 된 cmd에서 실행됩니다.

예 박쥐 :

;Run next command elevated to Admin.
set __COMPAT_LAYER=RunAsAdmin
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Group Policy\{35378EAC-683F-11D2-A89A-00C04FBBCFA2}" /t REG_DWORD /v "NoBackgroundPolicy" /d "1"
;Disable elevation
set __COMPAT_LAYER=
;continue non elevated
reg add "HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Internet Explorer\Main" /t REG_SZ /v "Start Page" /d "https://www.google.com" /f

모든 호환 모드 옵션은 MS Application Compatibility Toolkit에 나와 있습니다.


이 배치 파일은 끔찍하게 망가졌습니다. 사용할 수 없습니다. ; 주석 구분 기호로 사용됩니다. "배치 파일은 세미콜론을 인식하지 못하므로 일반적으로 잘못된 명령에 대한 오류 메시지가 나타납니다."
— DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.