언제부턴가 별 의미 없이 윈도우 업데이트 확인 버튼을 수동으로 직접 클릭해보는 습관이 생긴듯하여 이걸 자동화하는 방법을 찾아봤습니다.
처음엔 전체를 '오토핫키로 만들어 볼까?' 싶었는데, 클량 팁과강좌 게시판에 Title님께서 쓰신 좋은 내용을 발견했습니다. 외부 프로그램 없이도 가능하네요.
[깨알팁] 윈도우 업데이트 확인 by Title님 작성글 원문
PowerShell -c "&{ start ms-settings:windowsupdate;sleep 3;$wshell=New-Object -ComObject wscript.shell;$wshell.SendKeys('{ TAB}{ TAB}{ TAB}{ ENTER}')}" |
위 코드를 복사해서 메모장에 붙여넣고 저장시 파일형식을 모든 파일로 하신 다음에 .bat 또는 .cmd (배치파일)로 저장 후 실행하시면 됩니다.
※ 탭키 3번에 엔터인데 댓글보니까 탭키 2번에 엔터가 먹히는 경우도 있는 모양입니다. 혹시 사용시 잘 작동하지 않는다면 코드 내의 SendKeys 코드 다음에 { TAB} 부분을 빼거나 해서 수정하시면 됩니다.
다음은 여기서 하나 더 추가해서 Microsoft Store 업데이트 확인 입니다.
PowerShell -c "&{ start ms-windows-store://downloadsandupdates;sleep 3;$wshell=New-Object -ComObject wscript.shell;$wshell.SendKeys('{ TAB}{ TAB}{ TAB}{ TAB}{ TAB}{ TAB}{ TAB}{ TAB}{ TAB}{ TAB}{ ENTER}')}" |
스토어 쪽은 탭을 10연타해야 업데이트 아이콘 클릭(엔터)가 가능하네요.
대충 여기까지하고 각각의 배치 파일을 윈도우 시작 프로그램(또는 작업 스케줄러)에 걸어두면 부팅시 자동화가 가능합니다.
<추가 팁> 오토핫키를 사용해서 PC 전원을 켤때 전원을 여러번 켜더라도 하루에 딱 한번만 실행하도록 해봤습니다.
FormatTime, CurrentTime, , HH:mm if (CurrentTime >= "00:00" && CurrentTime <= "06:00") ; 혹시 오토핫키를 통해 다른 웹사이트 출석체크 루틴 등이랑 겸해서 쓰실 분을 위해서 00시~06시 사이에 컴터를 켰을 경우엔 자동화 작업을 진행하지 않고 종료합니다. { ExitApp } else { FormatTime, TodayShortDate,, ShortDate IniRead, IniShortDate, date.ini, Date, IniShortDate ; 날짜를 규정하고, date.ini 파일에 기록된 날짜와 오늘 날짜를 비해서 날짜가 일치하면 종료(=이미 오늘 컴터를 한번 켰음), 날짜가 다르면 자동화 작업을 시작합니다. if (TodayShortDate = IniShortDate) { ExitApp } else { Sleep 1000 Run, windows_update_check.bat ; 윈도우 업데이트. 위에서 정한 bat 파일명 Sleep 4000 WinMinimize 설정 Sleep 1000 Run, microsoft_store_update_check.bat ; 마소 업데이트. 위에서 정한 bat 파일명 Sleep 4000 WinMinimize Microsoft Store IniWrite, %TodayShortDate%, date.ini, Date, IniShortDate ; 모든 작업이 끝났으면 date.ini 파일에 오늘 날짜를 기록합니다. } } Sleep, 10000 WinClose 설정 WinClose Microsoft Store ExitApp |
오토핫키는 이렇게 만드시고 윈도우 부팅에 걸어두시면 됩니다.
※ 오토핫키만을 사용하는 경우 오토핫키 내에서 직접 Run, ms-settings:windowsupdate 한 다음에 Send { Tap},{ Tap},{ Tap},{ Enter} 와 같은 방식으로 구현할 수도 있고, ImageSearch 를 활용하여 MouseClick 버튼을 지정할 수도 있습니다.