BAT 파일을 항상 관리 모드로 실행하도록 코드화하려면 어떻게 해야 합니까?
내 BAT 파일에는 다음 행이 있습니다.
"Example1Server.exe"
Administrator 모드로 실행하고 싶습니다.admin으로 실행하도록 Bat 코드를 수정하려면 어떻게 해야 합니까?
이거 맞는건가요?견적을 넣어야 하나요?
runas /user:Administrator invis.vbs Example1Server.exe
다른 답변에서는 관리자 계정 암호를 입력해야 합니다.또한 Administrator Group 계정에서 실행하는 것은 Administrator에서 실행하는 것과 다릅니다.Wikipedia에서 UAC를 참조하십시오.
Windows 7의 순서
관리자로 실행하려면 배치 파일의 바로 가기를 만듭니다.
- 배치 파일을 마우스 오른쪽 버튼으로 클릭하고 복사를 클릭합니다.
- 바로 가기를 원하는 위치로 이동합니다.
- 디렉토리의 배경을 오른쪽 클릭합니다.
- 바로 가기 붙여넣기 선택
그런 다음 관리자로 실행하도록 바로 가기를 설정할 수 있습니다.
- 바로 가기를 오른쪽 클릭합니다.
- 속성 선택
- 바로 가기 탭에서 고급을 누르십시오.
- "관리자로서 실행" 확인란을 선택합니다.
- OK, OK를 클릭합니다.
숏컷을 더블클릭하면 UAC 확인을 요구하는 프롬프트가 표시되고 다음으로 Run as administrator(관리자로서 실행)가 표시됩니다(위에서 설명한 바와 같이 Administrator Group 계정에서 실행하는 것과는 다릅니다).
아래 스크린샷 확인
주의: 관리자 권한으로 실행 시 현재 디렉토리(경로)는 bat 파일과 같지 않습니다.이로 인해 대부분의 경우 bat 파일이 옆에 있는 상대 파일을 참조하는 데 문제가 발생할 수 있습니다.예를 들어 Windows 7에서는 bat 파일 위치가 아닌 SYSTEM32가 됩니다.이 문제를 해결하려면
cd "%~dp0"
혹은 그 이상
pushd "%~dp0"
cur dir가 bat 파일이 있는 경로와 동일한 경로에 있는지 확인합니다.
은 you 다 you you yourunas
「 」 「 」 、 「 」 、 「 」
runas /user:Administrator Example1Server.exe
이것을 배트 파일 상단에 추가해 주세요.
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )
admin으로 승격되어 올바른 디렉토리에 남습니다.Windows 10에서 테스트 완료.
서드파티 유틸리티를 사용할 수 있는 경우 명령줄 유틸리티를 다음에 나타냅니다.
소스 및 바이너리는 GitHub에서 사용할 수 있습니다.
사용방법은 다음과 같습니다.
Usage: Elevate [-?|-wait|-k] prog [args]
-? - Shows this help
-wait - Waits until prog terminates
-k - Starts the the %COMSPEC% environment variable value and
executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog - The program to execute
args - Optional command line arguments to prog
nircmd를 사용할 수 있습니다.exe의 상승 명령어
NirCmd 명령 참조 - 상승
elevate [Program] {Command-Line Parameters}
Windows Vista/7/2008 한정: 관리자 권한으로 프로그램을 실행합니다.[프로그램]에 공백 문자가 하나 이상 포함되어 있는 경우 따옴표로 묶어야 합니다.
예:
elevate notepad.exe
elevate notepad.exe C:\Windows\System32\Drivers\etc\HOSTS
elevate "c:\program files\my software\abc.exe"
PS: win 10에서 사용하므로 동작합니다.
go get github.com/mattn/sudo
그리고나서
sudo Example1Server.exe
http://www.battoexeconverter.com/ 도구를 사용하여 배치 파일을 .exe로 변환합니다.그러면 관리자 권한으로 실행할 수 있습니다.
실험 결과, runas 명령에는 관리자 도메인이 포함되어 있어야 합니다(적어도 조직의 환경 설정에서는 포함되어 있습니다).
runas /user:AdminDomain\AdminUserName ExampleScript.bat
admin 사용자의 도메인을 아직 모르는 경우 명령 프롬프트 인스턴스를 admin 사용자로 실행하고 다음 명령을 입력합니다.
echo %userdomain%
Kerrek SB와 Ed Greaves가 제공하는 답변에 따라 admin 사용자 아래에서 타깃파일이 실행되지만 파일이 일반 로그인 사용자 환경에서 동작하려고 하는 명령어스크립트(.bat 파일) 또는 VB스크립트(.vbs 파일)인 경우(레지스트리 엔트리 변경 등),스크립트가 실제로 실행되는 환경은 일반 사용자가 아닌 관리자 사용자의 환경이기 때문에 원하는 결과를 얻지 못할 수 있습니다.예를 들어 파일이 레지스트리의 HKEY_CURRENT_USER 하이브에서 작동하는 스크립트인 경우 영향을 받는 "current-user"는 일반 로그인 사용자가 아닌 관리자 사용자가 됩니다.
를 사용하는 경우/savecred
인수를 지정하면 패스워드는 한 번 요구되고 다시 요구되지 않습니다.다른 프로그램에 넣어도 패스워드는 묻지 않습니다.질문 예:
runas /user:Administrator /savecred Example1Server.exe
Windows 11에서 @Sire의 답변을 테스트했는데, 매우 효과가 있었습니다.를 사용하는 것은 언급할 가치가 있습니다.cmd /k
- @Sire가 사용한 대로 - 실행이 완료된 후에도 관리자 CMD가 열린 상태로 유지됩니다.사용.cmd /c
대신 배치 파일이 끝나면 창이 닫힙니다.
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/c cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )
사용할 수 있다는 것을 알았습니다.powershell
. powershell에 기본 Windows UAC 대화상자가 나타납니다.
powershell Start -File Example1Server.exe -Verb RunAs
관리자 권한을 가진 실행 BAT 파일의 경우 BAT 파일의 내용은 다음과 같습니다.
@echo off
if "%1"=="runas" (
cd %~dp0
echo Hello from admin mode
pause
) else (
powershell Start -File "cmd '/K %~f0 runas'" -Verb RunAs
)
여기서:
%1
BAT 파일에 할당된 첫 번째 입력 인수.%~f0
실행된 BAT 파일에 대한 전체 경로로 확장%~dp0
BAT 파일이 실행되는 전체 디렉토리 경로로 확장됩니다.cmd -C <commands>
터미널에서 명령 실행 및 닫기
바로 가기 속성에서 대상 배치 파일에 대한 완전한 물리적 드라이브\경로를 사용합니다.
Windows 10 에서는, 처음에 시도했던 것과 같이 서브 드라이브를 사용하고 있는 경우는, 이 기능은 동작하지 않습니다.
언급URL : https://stackoverflow.com/questions/6811372/how-to-code-a-bat-file-to-always-run-as-admin-mode
'programing' 카테고리의 다른 글
역할 관리자 기능이 활성화되지 않았습니다. (0) | 2023.04.20 |
---|---|
XAML의 #지역 (0) | 2023.04.20 |
변수 끝에서 문자 제거 (0) | 2023.04.20 |
프리프로세서 매크로가 없는 경우 Xcode 프로젝트에서 프로젝트 수준에서 실용적인 스킴 고유의 플래그를 정의하는 방법이 있습니까? (0) | 2023.04.20 |
그림.add_subplot(111)에서 인수는 무엇을 의미합니까? (0) | 2023.04.20 |