내 BAT 파일 안에이 줄이 있습니다.
"Example1Server.exe"
관리자 모드에서 이것을 실행하고 싶습니다. 박쥐 코드를 수정하여 관리자로 실행하는 방법은 무엇입니까?
이 올바른지? 따옴표를 넣어야합니까?
runas /user:Administrator invis.vbs Example1Server.exe
내 BAT 파일 안에이 줄이 있습니다.
"Example1Server.exe"
관리자 모드에서 이것을 실행하고 싶습니다. 박쥐 코드를 수정하여 관리자로 실행하는 방법은 무엇입니까?
이 올바른지? 따옴표를 넣어야합니까?
runas /user:Administrator invis.vbs Example1Server.exe
답변:
runas
특정 사용자로 프로그램을 시작하는 데 사용 합니다.
runas /user:Administrator Example1Server.exe
Example1Server.exe
)은 따옴표로 묶을 필요는 없지만 다른 경우에는 (이름의 공백과 같이 Example1 Server.exe
) 실제로 필요합니다. 따옴표가 필요하지 않더라도 사용할 수 있습니다 .
runas /User:abc "csript myscript.vbs"
, 또는 runas /User:abc "cmd /c start ..."
.
다른 답변은 관리자 계정 암호를 입력해야합니다. 또한 관리자 그룹의 계정으로 실행하는 것은 관리자 참조 : Wikipedia의 UAC 와 동일하지 않습니다.
Windows 7 지침
관리자 권한으로 실행하려면 배치 파일의 바로 가기를 만드십시오.
그런 다음 바로 가기를 관리자로 실행하도록 설정할 수 있습니다.
이제 바로 가기를 두 번 클릭하면 UAC 확인을 묻는 메시지가 표시 되고 관리자 권한으로 실행 (위에서 말한 것처럼 관리자 그룹의 계정으로 실행하는 것과 다릅니다)
아래 스크린 샷을 확인하십시오
참고 : 관리자 권한으로 실행하면 현재 디렉토리 (경로)가 bat 파일과 동일하지 않습니다. 이로 인해 bat 파일이 옆에있는 상대 파일을 참조하는 경우가 많습니다. 예를 들어, Windows 7에서 cur dir은 bat 파일 위치가 아닌 SYSTEM32입니다! 이를 해결하려면 , 당신은 사용해야합니다
cd "%~dp0"
또는 더 나은
pushd "%~dp0"
cur dir이 bat 파일과 동일한 경로에 있는지 확인하십시오.
이것을 박쥐 파일의 맨 위에 추가하십시오.
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 )
관리자 권한으로 올라가고 올바른 디렉토리에 유지됩니다. Windows 10에서 테스트되었습니다.
exit
배치 파일 끝에 추가 해야했습니다. 그렇지 않으면 프롬프트가 표시됩니다. .vbs가 두 번째 명령 프롬프트를 시작하기 때문일 수 있습니다.
당신은 타사 유틸리티를 사용할 수있는 경우, 여기입니다 elevate
명령 줄 유틸리티 .
사용법 설명입니다.
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
elevate.exe
바위!
nircmd.exe 의 elevate 명령을 사용할 수 있습니다
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"
추신 : 나는 승리 10에 사용하고 작동합니다
이 도구를 사용하여 배치 파일을 .exe로 변환하십시오 : http://www.battoexeconverter.com/ 그런 다음 관리자로 실행할 수 있습니다
내 실험에 따르면 runas 명령에는 관리자 도메인이 포함되어야합니다 (적어도 조직의 환경 설정에서는 포함).
runas /user:AdminDomain\AdminUserName ExampleScript.bat
관리자 도메인을 아직 모르는 경우 관리자 권한으로 명령 프롬프트 인스턴스를 실행하고 다음 명령을 입력하십시오.
echo %userdomain%
Kerrek SB 와 Ed Greaves 가 제공 한 답변 은 관리자 사용자에서 대상 파일을 실행하지만 파일이 일반 로그인에서 작동을 시도하는 명령 스크립트 (.bat 파일) 또는 VB 스크립트 (.vbs 파일) 인 경우 사용자 환경 (예 : 레지스트리 항목 변경)에서 스크립트가 실제로 실행되는 환경은 일반 로그인 사용자가 아닌 관리자 사용자의 환경이므로 원하는 결과를 얻지 못할 수 있습니다! 예를 들어, 파일이 레지스트리의 HKEY_CURRENT_USER 하이브에서 작동하는 스크립트 인 경우 영향을받는 "현재 사용자"는 일반 로그인 사용자가 아닌 관리자 사용자가됩니다.