윈 도 우 이런 식으로 작동하는 단일 배치 파일을 만들어주실 수 있으신가요?
2024.01.03 20:13
관리자 권한으로 스크립트를 실행하고자 할 때, 흔히 다음과 같은 스크립트를 씁니다.
@echo off
net session
if %errorlevel% neq 0 goto ELEVATE
goto ADMINTASKS
:ELEVATE
cd /d %~dp0
mshta "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();"
exit
:ADMINTASKS
REM Your own script here
하지만 이 방식은 실행시 매번 UAC 권한을 묻는 창이 나타나게 됩니다.
이를 우회하기 위해 쓰이는 방법이 '작업 스케줄러'를 이용한 방법이고요.
그래서 질문이 있습니다.
다음과 같이 작동하는 단일 배치 파일 작성이 가능할까요?
1. 'SkipUAC/<스크립트 파일 이름>'의 작업이 존재하는지 확인
1-1. 존재할 시, 해당 작업 실행
1-2. 존재하지 않을 시, 'SkipUAC/<스크립트 파일 이름>'이라는 새로운 작업 생성. 해당 작업은 해당 스크립트를 UAC 확인 창 없이 관리자 권한으로 실행함. 이후 새로 생성된 작업 실행.
2. 작업 생성 실패 시, 작업 생성이 실패했다는 내용의 MsgBox 출력
이렇게 하면 처음 작업을 등록할 때만 UAC 창이 나타나고, 이후에는 전혀 나타나지 않을 것으로 생각하고 있습니다.
2번에 대해서는 다음 코드를 쓰면 MsgBox를 출력할 수 있다고 하네요.
if 1 == 1 (
mshta vbscript:Execute^("msgbox ""message"",0,""title"":close"^)
)
도움을 주신 분들께 미리 감사 인사를 드립니다.
댓글 [2]
-
메리아 2024.01.04 16:27 -
ViArPl 2024.01.04 22:43
큰 틀을 잡아주신 덕분에 스크립트를 무사히 완성할 수 있었습니다. 감사합니다.
@echo off setlocal ENABLEDELAYEDEXPANSION REM Check admin privileges net session >nul 2>&1 if !ErrorLevel! equ 0 (set "IS_ADMIN=true") else (set "IS_ADMIN=false") if "%1" == "TASKRUN" ( if "!IS_ADMIN!" == "true" ( REM Run script REM Do what you want to do in here. They will run with admin privileges. ) else ( mshta vbscript:Execute^("msgbox ""This task requires admin privileges"",0,""Error"":close"^) ) ) else ( set "TNAME=SkipUAC\%~n0" schtasks /query /tn "!TNAME!" >nul 2>&1 if !ErrorLevel! equ 0 ( REM Task exists. Run it. echo Task detected. Running it... schtasks /run /tn "!TNAME!" ) else ( REM Task doesn't exists. Create it. echo Task is not detected. Creating new one... REM Task creation needs admin privileges if not "!IS_ADMIN!" == "true" (goto ELEVATE) schtasks /create /f /tn "!TNAME!" /sc ONCE /st "23:59" /tr "%~dpnx0 TASKRUN" /rl HIGHEST if !ErrorLevel! equ 0 ( REM Run newly created task schtasks /run /tn "!TNAME!" ) else ( REM Task creation failed mshta vbscript:Execute^("msgbox ""Failed to create task"",0,""Failed"":close"^) ) ) ) goto:eof :ELEVATE cd /d %~dp0 mshta "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();" exit
스크립트 하나 만드는 데 드는 노력이 장난 아니네요... 장인 분들의 노력이 한층 더 대단해 보입니다...
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
98748 | 하드웨어| OS영역 SSD 문의드립니다. [7] | 누구십니까 | 525 | 01-04 |
98747 | 윈 도 우| 포맷 없이 10에서 11로 업그레이드 하는 방법 [9] | 한우우웅 | 793 | 01-03 |
98746 | 소프트웨어| 엑셀 파일을 열때 딜레이가 있습니다. [3] | 『ⓖⓤⓝ』 | 494 | 01-03 |
98745 | 윈 도 우| 엣지 팝업 차단 및 리디렉션 설정을 배치파일로 [2] | 개골동자 | 218 | 01-03 |
98744 | 하드웨어| NVMe to USB 인클로저 [4] | 자슬내등사 | 525 | 01-03 |
» | 윈 도 우| 이런 식으로 작동하는 단일 배치 파일을 만들어주실 수 있... [2] | ViArPl | 318 | 01-03 |
98742 | 소프트웨어| vmware 가상머신 하나는 ventoy 전용으로 쓰고싶은데.. [9] | 립뽀 | 318 | 01-03 |
98741 | 모 바 일| 안드로이드 태블릿 쓰시는분 계시나요? [2] | 클라크 | 317 | 01-03 |
98740 | 하드웨어| M.2 SSD 설치 가능한가요? [23] | 햇님 | 641 | 01-03 |
98739 | 윈 도 우| 추가 설치한 ssd에 윈도우 백업해 놓은 이미지로 복원시켜 ... [8] | 비우리 | 479 | 01-03 |
98738 | 하드웨어| Crucial T500 1TB Gen4 NVMe M.2 ssd 괜찮나요? [2] | joe | 345 | 01-03 |
98737 | 모 바 일| 폰용 키패스 자동입력울 복구하고 싶은데요 | brucex | 157 | 01-03 |
98736 | 윈 도 우| 윈도우 홈->프로 변경 방법 [11] | 7617598 | 618 | 01-03 |
98735 | 윈 도 우| 특정 확장자만 파일 변경이 안 됩니다. [5] | 甘呑苦吐 | 274 | 01-03 |
98734 | 윈 도 우| 컴퓨터가 잦은 멈춤 현상 [15] | 한스 | 896 | 01-02 |
98733 | 하드웨어| ssd 문제 문의 [3] | 한스 | 555 | 01-02 |
98732 | 하드웨어| M.2 SSD가 2400MB/s 하고 7000/MB/s하고 체감할 수 있나요? [4] | joe | 580 | 01-02 |
98731 | 윈 도 우| 아래와같이 화면뜨고 부팅이 안되네요? [1] | 태양속으로 | 628 | 01-02 |
98730 | 소프트웨어| 동영상 파일에서 자막을 따로 TXT 파일로 추출을 할수가 있... [3] | 하얀달 | 390 | 01-02 |
98729 | 하드웨어| 키보드 추천요청 [3] | 여니미니아 | 335 | 01-02 |
-