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


149

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

"Example1Server.exe"

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

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

runas /user:Administrator invis.vbs Example1Server.exe


답변:


71

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

runas /user:Administrator Example1Server.exe

6
@karikari : 이와 같은 이름 ( Example1Server.exe)은 따옴표로 묶을 필요는 없지만 다른 경우에는 (이름의 공백과 같이 Example1 Server.exe) 실제로 필요합니다. 따옴표가 필요하지 않더라도 사용할 수 있습니다 .
Andriy M

18
관리자 계정 이름이 Administrator
Anders

9
@Anders : 아니요. 그렇지 않을 수도 있습니다. OP가 "패턴을 파악"할 수 있다고 가정합니다. 이것은 PLZ-주고 나를-TEH-codez 대답하지 않았다 : 그건 그렇고, 내가 영업 이익은 같은 좀 더 복잡한 명령을 할 수 있습니다 추가해야 -S runas /User:abc "csript myscript.vbs", 또는 runas /User:abc "cmd /c start ...".
Kerrek SB

16
기술적으로 정확하더라도 마우스 오른쪽 버튼을 클릭하고 관리자로 실행하는 것보다 훨씬 어렵 기 때문에이 답변이 방문자의 90 %가 원하는 것이 아니라고 두려워합니다. 다른 답변을 다시 확인하십시오. 정확히 가장 원하는 것입니다.
j riv

13
아니요,이 답변은 기술적으로 올바르지 않습니다. 관리자 로 실행하는 것은 이름이 Administrator 인 사용자에서 실행하는 것과 같지 않으며 권한이 다릅니다. 다른 답변을 참조하십시오.
Alexander Gelbukh

370

다른 답변은 관리자 계정 암호를 입력해야합니다. 또한 관리자 그룹의 계정으로 실행하는 것은 관리자 참조 : 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 파일과 동일한 경로에 있는지 확인하십시오.


8
아, 그것은 실제로 숨겨져 있습니다 (우리 대부분은 고급 버튼에 옵션이 있다고 생각하지 않았습니다). 나는 다른 복잡한 대답을 생각한 사람이 그것을 모른다는 것을 거의 확신합니다. 이것은 방문자의 90 % 이상이 원할 것입니다.
j riv

1
나는 동의한다. 이것이 답이되어야합니다. 또한 고급 버튼을 쉽게 찾을 수 있도록 스크린 샷을 추가했습니다
fedmich

1
이것은 Windows Server 2012 R2에도 적용됩니다.
garec

3
Windows 10 또는 Windows 7에서는 작동하지 않습니다. 관리자로 실행하려고하면 BAT 파일과 "관리자 권한으로 실행"을 마우스 오른쪽 단추로 클릭하거나 여기에 설명 된 기술을 사용하여 배치 파일이 1 초 동안 깜박입니다. 그런 다음 배치 파일에 명령이나 프로그램이 실행되지 않고 즉시 닫힙니다. "Hello World"를 반향하는 매우 간단한 배치 파일을 실행하려고 시도했지만 이러한 방식으로 실패합니다. 이것은 매우 실망입니다. 지금까지 해결책을 찾지 못했습니다.
Jonathan Elkins

1
@JonathanElkins 배치 파일 끝에 일시 중지를 추가하려고 했습니까?
Ed Greaves

32

이것을 박쥐 파일의 맨 위에 추가하십시오.

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에서 테스트되었습니다.


1
Windows 7에서 테스트되었으며 훌륭하게 작동합니다. 그러나 그것이 무엇을 설명 할 수 있습니까? 박쥐 파일에 익숙하지 않습니다.
Sunfloro

1
관리자 권한으로 올리는 코드가 포함 된 VBScript 파일을 만들고 (아직없는 경우) 이번에는 관리자로 bat 파일을 다시 실행합니다.
Sire

1
내가 정확히 무엇을 검색! 추가 변경이나 추가 파일이 필요하지 않습니다!
MSS

1
getadmin.vbs는 무엇입니까?
Kiquenet

4
기존 배치 파일에 두 줄의 코드를 추가하는 것이 좋습니다. 또한 exit배치 파일 끝에 추가 해야했습니다. 그렇지 않으면 프롬프트가 표시됩니다. .vbs가 두 번째 명령 프롬프트를 시작하기 때문일 수 있습니다.

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

elevate.exe바위!
Sangsang Lee

8

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에 사용하고 작동합니다


6

이 도구를 사용하여 배치 파일을 .exe로 변환하십시오 : http://www.battoexeconverter.com/ 그런 다음 관리자로 실행할 수 있습니다


2
이런 방식으로 작성된 exe 파일에는 많은 바이러스 백신이 매우 민감하다는 점을 명심하십시오. 이런 방식으로 배치 파일을 "변환 / 암호화"하는 것은 악성 프로그램이 사용하는 오래된 방법입니다.
Hamy

시만텍을 사용하여이 도메인을 분석하는 경우 위협 유형 : 기타 맬웨어 위협 원인 : 도메인이 맬웨어를 제공하는 것으로보고 및 확인했습니다. 악성 도메인 또는 URL로 식별되었습니다.
Sunil

나쁜 제안!
블라드

6
go get github.com/mattn/sudo

그때

sudo Example1Server.exe

6

암호 문제에 대한 해결책이 있다고 생각합니다. 이 단일 주장은 정말 놀랍습니다. 비밀번호를 한 번 요청하고 다시 요청하지 않습니다. 다른 프로그램에 넣더라도 비밀번호를 묻지 않습니다. 여기있어:

runas /user:Administrator /savecred Example1Server.exe


4
  1. 내 실험에 따르면 runas 명령에는 관리자 도메인이 포함되어야합니다 (적어도 조직의 환경 설정에서는 포함).

    runas /user:AdminDomain\AdminUserName ExampleScript.bat
    

    관리자 도메인을 아직 모르는 경우 관리자 권한으로 명령 프롬프트 인스턴스를 실행하고 다음 명령을 입력하십시오.

    echo %userdomain%
    
  2. Kerrek SBEd Greaves 가 제공 한 답변 은 관리자 사용자에서 대상 파일을 실행하지만 파일이 일반 로그인에서 작동을 시도하는 명령 스크립트 (.bat 파일) 또는 VB 스크립트 (.vbs 파일) 인 경우 사용자 환경 (예 : 레지스트리 항목 변경)에서 스크립트가 실제로 실행되는 환경은 일반 로그인 사용자가 아닌 관리자 사용자의 환경이므로 원하는 결과를 얻지 못할 수 있습니다! 예를 들어, 파일이 레지스트리의 HKEY_CURRENT_USER 하이브에서 작동하는 스크립트 인 경우 영향을받는 "현재 사용자"는 일반 로그인 사용자가 아닌 관리자 사용자가됩니다.


0

바로 가기 속성에서 대상 배치 파일의 전체 물리적 드라이브 경로를 사용하십시오.

처음에 시도한 것처럼 서브 드라이브를 사용하면 Windows 10에서 작동하지 않습니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.