Context Menu Manager v1.1은 Windows 10과 11을 자동 감지하여 사용자 지정 우클릭(컨텍스트) 메뉴 항목을 토글 방식으로 관리할 수 있는 배치 스크립트입니다. 각 메뉴 항목은 [ON] 상태일 때 등록됨, [OFF] 상태일 때 제거됨을 의미하며, 단일 항목뿐 아니라 전체 일괄 등록 / 제거 기능도 제공합니다.
🧠 주요 특징
구분기능 설명
🔍 Windows 버전 자동 감지
빌드 번호(22000 기준)로 Windows 10/11 구분
🧾 컨텍스트 메뉴 등록/삭제
19개 메뉴 항목 개별 제어 가능
💾 VBS 유틸 자동 생성
재부팅/종료/안전모드 등 팝업형 실행 스크립트 자동 생성
🧹 전체 적용/제거 기능
한 번에 모든 메뉴 등록 또는 초기화
🎨 ANSI 색상 UI
[ON]/[OFF] 상태를 컬러로 구분 (녹색/빨강)
⚙️ 버전별 메뉴 스킵 처리
Windows 10과 11에서 각각 적용 불가한 항목 자동 건너뜀
🧩 스크립트 구성 요약
1️⃣ 시작 및 기본 설정
콘솔 창 크기 조정 (mode con, powershell 이용)
ANSI 색상 코드 설정
Cyan / Red / Green / Reset
2️⃣ VBS 스크립트 자동 생성
시스템 기능을 제어하기 위한 VBS 파일을 %TEMP% 폴더에 자동 생성합니다.
파일명기능설명
h.vbs
숨김파일 및 확장자 토글
탐색기에서 숨김 파일/시스템 파일/확장자 표시를 즉시 전환
LogoffConfirm.vbs
로그오프
확인 창을 띄운 뒤 사용자 로그오프
SafeModeConfirm.vbs
안전모드 재부팅
안전모드 재부팅 여부 확인 후 실행
RebootConfirm.vbs
재부팅
재시작 여부를 묻는 팝업 실행
ShutdownConfirm.vbs
시스템 종료
종료 여부를 묻는 팝업 실행
이 파일들은 C:\Windows 폴더에 복사되어 메뉴 동작에 사용됩니다.
3️⃣ Windows 버전 자동 감지
for /f %%a in ('powershell -NoProfile -Command "[int](Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentBuildNumber"') do set "BuildNumber=%%a"
빌드 번호 22000 미만 → Windows 10
빌드 번호 22000 이상 → Windows 11
이에 따라 일부 메뉴(예: Windows 11 전용 메뉴)는 자동 스킵 처리됩니다.
4️⃣ 컨텍스트 메뉴 항목 정의
총 19개 항목을 등록/삭제 가능하며, 각각은 HKCR 또는 HKLM 레지스트리에 추가됩니다.
번호메뉴명설명
1
컴퓨터 관리
바로 “컴퓨터 관리” 실행
2
네트워크 연결
네트워크 어댑터 설정 창 열기
3
Windows 11 우클릭 메뉴 전환
“클래식/새 메뉴” 전환 토글 (Win11 전용)
4
Explorer 재시작
탐색기 프로세스 재시작
5
시스템 속성(구)
구형 시스템 속성 창 열기
6
디스크 정리
cleanmgr.exe 실행
7
장치 및 프린터
제어판의 장치 및 프린터 창 열기
8
인쇄 대기열 삭제
스풀러 중지 → 대기열 삭제 → 재시작
9
메모장 열기
탐색기 배경에서 메모장 실행
10
메모장으로 열기
선택한 파일을 메모장으로 열기
11
명령 창 열기(관리자)
관리자 CMD 바로 열기
12
실시간 보호 열기
Windows Defender 설정 바로가기
13
숨김파일 토글
탐색기 숨김 항목 표시 전환 (h.vbs 사용)
14
새로 만들기(.bat)
빈 .bat 파일 생성 옵션 추가
15
새로 만들기(.cmd)
빈 .cmd 파일 생성 옵션 추가
16
새로 만들기(.ps1)
PowerShell 스크립트 생성 (Win10 전용)
17
새로 만들기(.reg)
빈 레지스트리 파일 생성 (Win10 전용)
18
파일 및 폴더 경로 복사
선택한 항목의 전체 경로를 클립보드로 복사
19
전원 옵션 세트
종료/재시작/로그오프/예약 종료 메뉴 통합
5️⃣ 전원 옵션 세트 (PowerSet)
가장 강력한 기능 중 하나로, 탐색기 배경 우클릭 시 다음 하위 메뉴들이 표시됩니다.
🔋 전원 옵션 (PowerSet)
시스템 예약 종료
30분 / 45분 / 60분 / 90분 / 120분 후 종료 예약
예약 취소 (shutdown /a)
시스템 로그아웃 — LogoffConfirm.vbs 실행
안전모드 부팅 — SafeModeConfirm.vbs 실행
시스템 재시작 — RebootConfirm.vbs 실행
시스템 종료 — ShutdownConfirm.vbs 실행
각 항목은 모두 아이콘 지정 및 확인 팝업 적용되어 있으며, C:\Windows에 복사된 VBS 스크립트로 작동합니다.
6️⃣ 전체 적용 / 전체 제거
[A] → 전체 메뉴 등록
OS 버전에 맞춰 자동 스킵 및 적용
[R] → 전체 메뉴 제거
모든 레지스트리 키와 관련 VBS 파일 완전 삭제
💡 사용 방법 요약
ContextMenuManager.bat 파일을 관리자 권한으로 실행
콘솔 창에서 현재 상태([ON]/[OFF]) 확인
숫자 입력으로 개별 메뉴 토글 (A 전체 적용 / R 전체 제거 / X 종료)
Windows 10/11 환경에 따라 자동 예외 처리됨
⚠️ 주의사항
관리자 권한이 필수입니다. (레지스트리 및 C:\Windows 접근이 필요)
일부 메뉴는 Windows 11 환경에서만 표시됩니다.
적용 후 탐색기 재시작이 필요할 수 있습니다.
🏁 마무리
이 스크립트는 탐색기 우클릭 메뉴를 GUI 툴 없이도 완전히 제어할 수 있도록 설계된 고급 배치 유틸리티입니다. Windows를 자주 튜닝하는 사용자에게 유용하며, 원클릭으로 시스템 관련 명령을 바로 실행할 수 있는 강력한 도구입니다.
이 배치 파일은 Windows 11에서 Windows Update의 "업데이트 일시 중지"기간을 최대 5년(260주)까지 연장할 수 있는 도구입니다. Windows 11 전용이며, Windows 10 또는 이하 버전 에서는 작동하지 않습니다.
2. 주요 기능
관리자 권한 확인 후 실행
Windows 11 빌드 버전 확인
메뉴 기반으로 연장 기간 선택
1년(52주) ~ 5년(260주)
선택한 기간을 레지스트리(HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings\FlightSettingsMaxPauseDays) 에 적용
적용 후 재부팅 선택 가능
ANSI 컬러 출력 지원으로 가독성 향상
3. 동작 방식
관리자 권한 확인
NET SESSION >nul 2>&1 if %errorLevel% neq 0 ( echo [오류] 관리자 권한으로 실행해야 합니다. pause exit /b )
Windows 빌드 확인
Windows 11 이상(빌드 22000 이상)만 허용
하위 OS에서는 종료
for /f %%B in ('powershell -NoLogo -NoProfile -Command "(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentBuildNumber"') do set build=%%B
사용자 메뉴 제공
1. 1년 (52주) 2. 2년 (104주) 3. 3년 (156주) 4. 4년 (208주) 5. 5년 (260주) X. 종료
:: ===============================================================
:: made by : 무월(Geheimnis)
:: https://noways.tistory.com
:: ===============================================================
@echo off
title WinUpdate_Pause_Extend (Windows 11 Update Pause Extension Tool)
mode con cols=80 lines=40
pushd %~dp0
setlocal enabledelayedexpansion
set "indent= "
:: ANSI 색상 설정
Set _fCyan=[36m
Set _fBRed=[91m
Set _fBGreen=[92m
Set _RESET=[0m
:: ANSI 컬러 활성화 보장
reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1 /f >nul 2>&1
:admincheck
NET SESSION >nul 2>&1
if %errorLevel% neq 0 (
echo [오류] 관리자 권한으로 실행해야 합니다.
pause
exit /b
)
:checkOS
for /f %%B in ('powershell -NoLogo -NoProfile -Command "(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentBuildNumber"') do set build=%%B
if "%build%"=="" (
echo Windows 버전을 확인할 수 없습니다.
pause
exit /b
)
:: Windows 11 = 빌드 22000 이상
if %build% lss 22000 (
cls
echo ===============================================================
echo %indent%%_fBRed%현재 OS는 Windows 10 또는 그 이하 버전입니다.%_RESET%
echo %indent%이 스크립트는 Windows 11 이상에서만 적용 가능합니다.
echo ===============================================================
echo.
pause
exit /b
)
:menu
cls
echo ===============================================================
echo %indent%%indent% Windows Update "업데이트 일시중지" 기간 설정
echo ===============================================================
echo %indent% (최대 5년 260주까지 설정 가능, %_fBRed%Windows 11 이상 전용%_RESET%)
echo ===============================================================
echo.
echo %indent%1. 1년 (52주)
echo %indent%2. 2년 (104주)
echo %indent%3. 3년 (156주)
echo %indent%4. 4년 (208주)
echo %indent%5. 5년 (260주)
echo %indent%X. 종료
echo.
echo ===============================================================
echo.
set /p year=설정할 년수 번호를 선택하세요 (1~5, X 종료):
if "%year%"=="" goto menu
:: X 입력 시 종료
if /I "%year%"=="X" exit /b
:: 숫자 유효성 검사
set /a test=%year%+0 2>nul
if errorlevel 1 goto invalid
if %year% lss 1 goto invalid
if %year% gtr 5 goto invalid
set /a days=%year%*365
for /f %%H in ('powershell -command "[convert]::ToString(%days%,16)"') do set hex=%%H
set hex=00000000%hex%
set hex=%hex:~-8%
echo.
echo 설정할 기간: %year%년 (%days%일)
echo 적용될 HEX 값: 0x%hex%
echo.
reg query "HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays >nul 2>&1
if %errorLevel%==0 (
echo 기존 값이 존재합니다.
reg query "HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays
echo.
choice /c YN /m "덮어쓰시겠습니까?"
if errorlevel 2 (
echo 작업이 취소되었습니다.
pause
goto menu
)
)
reg add "HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t REG_DWORD /d %days% /f
if %errorLevel%==0 (
echo.
echo 레지스트리가 성공적으로 적용되었습니다.
) else (
echo 레지스트리 적용 중 오류 발생.
pause
goto menu
)
echo.
choice /c YN /m "지금 재부팅하시겠습니까? (Y=재부팅, N=메뉴로 돌아가기)"
if errorlevel 2 (
echo 재부팅을 건너뜁니다.
pause
goto menu
) else (
echo.
echo 시스템을 5초 후에 재부팅합니다. 준비하세요...
timeout /t 5 /nobreak >nul
echo 재부팅 진행 중...
shutdown /r /t 0
:: 배치창이 바로 닫히지 않도록 잠시 대기
timeout /t 3 >nul
)
exit /b
:invalid
echo 잘못된 입력입니다. 1~5 사이의 숫자 또는 X를 입력하세요.
pause
goto menu