[windows] 항상 관리자 모드로 실행되도록 BAT 파일을 코딩하는 방법은 무엇입니까?

내 BAT 파일 안에이 줄이 있습니다.

"Example1Server.exe"

관리자 모드에서 이것을 실행하고 싶습니다. 박쥐 코드를 수정하여 관리자로 실행하는 방법은 무엇입니까?

이 올바른지? 따옴표를 넣어야합니까?

runas /user:Administrator invis.vbs Example1Server.exe



답변

runas특정 사용자로 프로그램을 시작하는 데 사용 합니다.

runas /user:Administrator Example1Server.exe


답변

다른 답변은 관리자 계정 암호를 입력해야합니다. 또한 관리자 그룹의 계정으로 실행하는 것은 관리자 참조 : Wikipedia의 UAC 와 동일하지 않습니다.

Windows 7 지침

관리자 권한으로 실행하려면 배치 파일의 바로 가기를 만드십시오.

  1. 배치 파일을 마우스 오른쪽 버튼으로 클릭하고 복사를 클릭하십시오.
  2. 바로 가기를 원하는 곳으로 이동
  3. 디렉토리의 배경을 마우스 오른쪽 버튼으로 클릭하십시오.
  4. 붙여 넣기 바로 가기 선택

그런 다음 바로 가기를 관리자로 실행하도록 설정할 수 있습니다.

  1. 바로 가기를 마우스 오른쪽 버튼으로 클릭
  2. 속성을 선택하십시오
  3. 바로 가기 탭에서 고급을 클릭하십시오.
  4. “관리자 권한으로 실행”체크 상자를 선택하십시오.
  5. 확인을 클릭하고 확인

이제 바로 가기를 두 번 클릭하면 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에서 테스트되었습니다.


답변

당신은 타사 유틸리티를 사용할 수있는 경우, 여기입니다 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


답변

nircmd.exeelevate 명령을 사용할 수 있습니다

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/ 그런 다음 관리자로 실행할 수 있습니다


답변

go get github.com/mattn/sudo

그때

sudo Example1Server.exe