2012-07-02 7 views
0

두 개의 개별 배치 파일이 있는데 첫 번째 파일은 UAC의 사용 여부를 확인합니다. 활성화 된 경우 "uac.bat"이 호출됩니다. 그는 이전 배치 파일과 같은 폴더에있는 "uac.bat"2 개 배치 파일을 1 개로 작성하기

REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA | FIND "0x1" >NUL && (call uac.bat) || (echo Good day sir) 

이 나올 업 UAC 프롬프트를

@echo off 

:: BatchGotAdmin 
:------------------------------------- 
REM --> Check for permissions 
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" 

REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges... 
    goto UACPrompt 
) else (goto gotAdmin) 

:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" 

    "%temp%\getadmin.vbs" 
    exit /B 

:gotAdmin 
    if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs") 
    pushd "%CD%" 
    CD /D "%~dp0" 
:-------------------------------------- 

내가 사용 명령을 "전화"시도했다, 그러나 내 UAC가 비활성화되어 있어도 내 UAC가 활성화 된 것처럼 UAC 프롬프트가 계속 나오기 때문에 나는 뭔가 잘못하고 있습니다. 이 문제를 해결하는 방법? 앞으로의

감사합니다 :)이 하나에 두 가지를 병합해야

+2

배치 파일에 관리자 권한이 없으므로 요청하기 때문에 UAC가 팝업됩니다. 관리자로 로그인하여 실행하십시오. –

+0

위의 스크립트는 완벽하게 작동합니다. 두 개의 개별 배치 파일에있는 것입니다. 나는 그것이 1에 있어야합니다. 미리 감사드립니다! :) – Perulo

+0

그게 문제가 뭐라고하지 :) 그 경우에 당신은 다른 하나의 상단에'reg의 쿼리'라인을 넣을 수 없어 UAC 부분에 레이블을 호출? –

답변

0

.

@echo off 
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA | FIND "0x1" >NUL && (goto :PROMPTUAC) 
exit >nul 

:PROMPTUAC 
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" 
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges... 
    goto UACPrompt 
) else (goto gotAdmin) 

:UACPrompt 
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" 
"%temp%\getadmin.vbs" 
exit /B 

:gotAdmin 
if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs") 
pushd "%CD%" 
CD /D "%~dp0" 
+0

정말 발리, 정말 고마워요! :) – Perulo

관련 문제