이미 비 승강 된 명령 줄에있을 때 상승 된 권한으로 프로그램이나 명령을 실행하는 방법이 있습니까?
프로그램 바로 가기를 클릭하고 선택했을 때 수행되는 것과 정확히 동일한 작업입니다. 관리자 권한으로 실행 .
이미 비 승강 된 명령 줄에있을 때 상승 된 권한으로 프로그램이나 명령을 실행하는 방법이 있습니까?
프로그램 바로 가기를 클릭하고 선택했을 때 수행되는 것과 정확히 동일한 작업입니다. 관리자 권한으로 실행 .
답변:
이있다 이것을하는 방법 PowerShell :
PS> Start-Process powershell -Verb runAs
powershell -Command "Start-Process 'C:\program.exe' -Verb runAs"
$p = Start-Process powershell -Verb runAs -ArgumentList "-Command ``"& { ``$Host.SetShouldExit(123) }``"" -PassThru; $p.ExitCode
이 작업은 Windows 10을 포함한 모든 플랫폼에서 가능합니다. 필요하면 간단하게 접근 할 수 있습니다. 힘 .
나는 작은 이름의 스크립트를 만들었고, sudo.cmd
Linux sudo 명령에 이름이 지정됩니다. 생각만큼 잘 작동합니다. 필자는 요구 사항, 따라야 할 단계 및 스크립트의 예를 아래에 요약했습니다. 먼저 경고의 말.
경고 :
명령은 Windows 시스템 디렉토리에서 기본적으로 실행됩니다. 너는 ~을 원할거야. cd
안전한 곳으로.
요구 사항 :
sudo
Linux에서 명령. 해결책 :
sudo.cmd
sudo.lnk
. sudo
당신의 창문에서 짧은 컷 그래서 볼 수 있습니다. Start in:
빈 경로. Advanced
] 버튼 - 확인 Run as Administrator
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
명령에서 반환됩니다.
보세요 시작 ++ -이 기능은 다른 많은 유용한 기능과 함께 제공됩니다. UAC 프롬프트로 실행하려면 sudo
다음과 같이 명령 줄에서 프로그램 이름을 입력하십시오.
다음은 몇 가지 다른 기능입니다 (직접 추가 할 수도 있음).
이것은 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}"
__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에 나와 있습니다.
;
주석 구분 기호로 사용됩니다. "배치 파일은 세미콜론을 인식하지 못하므로 일반적으로 잘못된 명령에 대한 오류 메시지가 나타납니다."