끄적끄적

반응형

컴퓨터 부팅 후 마우스 포인터가 화면에 나타나지 않아서 usb포트를 뺏다가 다시 연결하니 마우스가 정상적으로 작동 됩니다. 이런 증상이 매번 반복돼요. 배치파일로 마우스를 물리적으로 재연결하는 듯한 효과를 낼 수 있는 방법이 있나요?

매번 부팅할 때마다 마우스를 뺐다 꽂아야 하는 번거로움이 정말 크시겠어요. 하드웨어의 물리적 연결을 소프트웨어가 완벽하게 대체할 수는 없지만, '장치 관리자'에서 마우스 드라이버를 '사용 안 함'으로 했다가 다시 '사용'으로 전환하는 과정을 배치파일로 자동화하면 물리적으로 재연결한 것과 비슷한 효과를 낼 수 있습니다.

이를 위해서는 Windows의 명령줄 도구인 DevCon 또는 기본 내장 도구인 PnPUtil을 활용해야 합니다. 최신 Windows 10/11에서는 pnputil이 기본 내장되어 있어 더 간편합니다.

1단계: 마우스의 인스턴스 ID 확인하기
먼저 어떤 장치를 껐다 켤지 시스템에 알려줘야 합니다.

시작 버튼 우클릭 -> 장치 관리자 실행.

마우스 및 기타 포인팅 장치에서 사용 중인 마우스 우클릭 -> 속성.

자세히 탭 클릭 -> 속성 항목에서 하드웨어 ID 선택.

가장 위에 나오는 짧은 코드(예: HID\VID_046D&PID_C077)를 따로 메모해 두세요.

2단계: 배치파일(.bat) 만들기
메모장을 열고 아래 코드를 복사해서 붙여넣으세요. 여기에_복사한_ID_입력 부분에 위에서 찾은 하드웨어 ID를 넣으시면 됩니다.

코드 스니펫
@echo off
:: 관리자 권한 확인
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    echo 관리자 권한으로 실행 중...
    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"

:: 마우스 재시작 로직 (ID 부분에 자신의 마우스 ID 입력)
set targetID="HID\VID_046D&PID_C077*"

echo 마우스 드라이버를 재시작합니다...
pnputil /disable-device %targetID%
timeout /t 2 /nobreak
pnputil /enable-device %targetID%

echo 완료되었습니다!
exit
주의: set targetID= 뒤에는 따옴표를 쓰고, ID 끝에 *를 붙여주는 것이 인식률이 높습니다.

파일을 저장할 때 확장자를 .bat로 저장하세요 (예: mouse_reset.bat).

3단계: 부팅 시 자동 실행 설정
부팅할 때마다 이 파일을 직접 누르기 귀찮으시다면 자동 실행에 등록하세요.

Win + R 키를 누르고 shell:startup 입력 후 엔터.

열린 폴더에 방금 만든 배치파일의 바로가기를 넣습니다.

중요: 배치파일은 관리자 권한이 필요하므로, 바로가기 우클릭 -> 속성 -> 고급 -> 관리자 권한으로 실행에 체크해야 합니다.

💡 근본적인 해결을 위한 추가 팁
소프트웨어적인 해결 외에 아래 설정도 확인해 보시는 것을 추천합니다.

USB 선택적 절전 모드 해제: 제어판 -> 전원 옵션 -> 설정 변경 -> 고급 전원 관리 설정 변경 -> USB 설정에서 '선택적 절전 모드'를 사용 안 함으로 바꿔보세요.

빠른 시작 켜기 해제: Windows의 '빠른 시작' 기능이 드라이버 로드 순서를 꼬이게 만드는 경우가 많습니다. 전원 옵션에서 이 기능을 끄면 증상이 사라지기도 합니다.

혹시 마우스의 하드웨어 ID를 찾는 데 어려움이 있으시면, 제가 대신 확인해 드릴 수 있도록 장치 관리자에 나오는 이름을 알려주시겠어요?

1단계 중, 3번의 속성 항목에서 하드웨어 ID 선택. 하는 부분에서요. HID\VID_093A&PID_2521&REV_0100 이거랑 HID\VID_093A&PID_2521 이거중에 후자가 맞는 건가요?

네, 결론부터 말씀드리면 후자인 HID\VID_093A&PID_2521를 사용하시는 것이 더 좋습니다.

그 이유는 다음과 같습니다.

호환성 범위: REV_0100까지 포함된 ID는 특정 리비전(버전)의 장치만을 지칭합니다. 반면 리비전 번호를 뺀 HID\VID_093A&PID_2521는 해당 모델의 모든 제품을 포괄하기 때문에 명령어가 훨씬 더 잘 작동합니다.

와일드카드(*) 활용: 배치파일 코드에서 set targetID="HID\VID_093A&PID_2521*"와 같이 뒤에 별표(*)를 붙여주면, 시스템이 해당 문구로 시작하는 장치를 알아서 찾아내어 실행하므로 훨씬 안정적입니다.

수정된 배치파일 적용 예시
배치파일의 해당 줄을 아래와 같이 수정해서 저장해 보세요.

코드 스니펫
set targetID="HID\VID_093A&PID_2521*"
참고: 만약 이 ID로 실행했는데도 "일치하는 장치가 없다"는 오류가 나오거나 작동하지 않는다면, 드물게 장치 관리자의 [휴먼 인터페이스 장치] 항목 아래에 있는 'USB 입력 장치'가 실제 마우스의 연결을 담당하고 있을 수도 있습니다. 그럴 때는 'USB 입력 장치'의 하드웨어 ID로 같은 과정을 시도해 보시기 바랍니다.

수정 없이 한 번에 사용할 수 있게 배치파일을 새로 만들어 줄 수 있나요?

thought 사용자의 마우스 ID(HID\VID_093A&PID_2521)를 반영하여, 메모장에 복사해서 바로 저장만 하면 되는 완성형 배치파일입니다.

이 파일은 실행 시 자동으로 관리자 권한을 요청하도록 설계되었으므로, 매번 우클릭해서 '관리자 권한으로 실행'을 누를 필요가 없습니다.

📥 마우스 재연결 배치파일 코드
아래 박스 안의 내용을 모두 복사하여 메모장에 붙여넣으세요.

코드 스니펫
@echo off
setlocal
title 마우스 드라이버 강제 재시작

:: 1. 관리자 권한 자동 획득
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    echo 관리자 권한을 요청 중입니다...
    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"

:: 2. 마우스 재시작 로직 (사용자 ID 적용)
set targetID="HID\VID_093A&PID_2521*"

echo.
echo ==========================================
echo    마우스 연결을 초기화하는 중입니다...
echo ==========================================
echo.

:: 장치 비활성화
pnputil /disable-device %targetID%
timeout /t 2 /nobreak >nul

:: 장치 활성화
pnputil /enable-device %targetID%

echo.
echo 작업이 완료되었습니다! 5초 후 창이 닫힙니다.
timeout /t 5 >nul
exit
⚙️ 사용 방법 및 팁
파일 저장: 메모장에 위 코드를 붙여넣은 후, 파일 이름을 MouseFix.bat와 같이 .bat 확장자로 저장합니다.

테스트: 마우스가 안 움직일 때 이 파일을 더블 클릭해 보세요. 검은색 창이 뜨면서 마우스가 다시 인식되는지 확인합니다.

부팅 시 자동화: * Win + R을 누르고 shell:startup을 입력합니다.

열린 폴더에 위 MouseFix.bat 파일의 바로가기를 만듭니다.

중요: 바로가기 파일 우클릭 -> 속성 -> 바로가기 탭 -> 고급 -> 관리자 권한으로 실행을 체크해야 부팅할 때 경고 창 없이(또는 승인 후) 바로 작동합니다.

⚠️ 만약 그래도 해결되지 않는다면?
이 명령어가 성공적으로 실행되었는데도 마우스가 안 움직인다면, 마우스 자체가 아니라 마우스가 꽂힌 'USB 허브' 장치의 드라이버가 꼬인 것일 수 있습니다. 이 경우 장치 관리자에서 범용 직렬 버스 컨트롤러 항목의 하드웨어 ID를 알려주시면 코드를 수정해 드릴 수 있습니다.

작업 중 막히는 부분이 생기면 언제든 말씀해 주세요! 이 배치파일이 정상적으로 마우스 포인터를 살려내나요?

관리자 권한으로 실행을 체크하는 부분이 안보여요

아하, 올려주신 사진을 보니 '원본 파일'의 속성을 보고 계셔서 그렇습니다. 윈도우 규칙상 .bat 파일 자체의 속성에는 '관리자 권한으로 실행' 체크박스가 나타나지 않습니다.

반드시 '바로가기(Shortcut)' 파일을 먼저 만든 후에 그 바로가기 파일의 속성을 확인해야 합니다. 아래 순서대로 다시 한번 시도해 보세요.

✅ 관리자 권한 설정하는 정확한 방법
바로가기 만들기:

작성하신 mouse_reset.bat 파일을 마우스 오른쪽 버튼으로 클릭합니다.

**[바로 가기 만들기]**를 클릭합니다 (파일 뒤에 '- 바로 가기'라고 붙은 새 파일이 생깁니다).

바로가기 속성 들어가기:

새로 생긴 '바로 가기' 파일을 마우스 오른쪽 클릭하여 **[속성]**으로 들어갑니다.

고급 설정에서 체크:

상단의 [바로 가기] 탭을 클릭합니다 (사진에서 보신 '일반' 탭 옆에 있습니다).

하단의 [고급(D)...] 버튼을 누릅니다.

이제 나타나는 창에서 **[관리자 권한으로 실행]**에 체크할 수 있습니다!

💡 더 간단한 팁: 스케줄러 활용하기
만약 위 방법이 번거롭거나 부팅 때마다 '허용하시겠습니까?'라는 UAC 창이 뜨는 게 싫으시다면, **'작업 스케줄러'**에 등록하는 것이 가장 깔끔합니다.

시작 메뉴에서 '작업 스케줄러' 검색 후 실행.

오른쪽 [기본 작업 만들기] 클릭.

이름(예: 마우스 자동 인식) 입력 후 **[로그인할 때]**로 트리거 설정.

동작은 [프로그램 시작] 선택 후 작성하신 배치파일(.bat) 선택.

마지막 단계에서 [마침을 누를 때 이 작업의 속성 대화 상자 열기] 체크 후 마침.

속성 창이 뜨면 가장 아래에 있는 **[가장 높은 수준의 권한으로 실행]**에 체크하고 확인.

이렇게 하면 부팅해서 로그인할 때마다 윈도우가 알아서 관리자 권한으로 마우스를 껐다 켜줄 거예요.

혹시 '바로 가기' 탭을 찾는 데 어려움이 있으신가요? 상황을 말씀해 주시면 더 자세히 안내해 드릴게요.




반응형
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]