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


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.