GetUpdate - Windows Update 리스트 확인
Posted 2009/09/28 10:37안녕하세요 올엠 입니다.
오늘은 Windows Update 리스트를 생성해 주는 Getupdate에 대해 알려드리겠습니다.
뭐.. 제가 만든건 아니구, 필요해 의해 찾게 되었습니다.
우선 만들어주신 개발자 분에게 감사의 말을 전합니다.(외국인 이므로, 영어로 해야하나.. ;;)
일반적으로는, 업데이트 리스트를 저장할 필요가 없지만, 서버 관리자의 경우는 다르겠죠, 각서버의 업데이트 상태등을 확인하기 위해 본 스크립트는 유용할수 있어요.
GetUpdate는 VB 스크립트로 실행하면, 윈도우와 관련된 설치된 패치들을 HTML 파일로 생성하여 나열하게 됩니다.
그렇다면 본 스크립트는 어떤 원리로 작동하는 것일까요?
내용을 보면 WMI의 쿼리를 사용하여 인스톨된 업데이트 리스트를 생성하도록 되어 있습니다. (내용이 길지도 않습니다.)
Set QFEs = objWMIService.ExecQuery ("Select * from win32_QuickFixEngineering")
위 문장으로 Windows 관련 패치내용을 수집합니다.
그리고 나열은
QFE를 사용하여, For를 사용하여 QFE로 QFEs를 넣고 if문으로 하나씩 나누어 줄을 찍도록 합니다.
For Each QFE in QFEs
여기서 나열시 링크를 만들수 있었던건, MS는 핫픽스 번호와 웹링크가 일치한다는것을 이용하여,
"<TD> <a href=""http://support.microsoft.com/?kbid=" & getKBID(QFE.HotFixID) & """>" & getKBID(QFE.HotFixID) & "</a></TD>" &_
위 문장으로 웹링크를 같이 자동적으로 생성해준다는 것이죠.
그런데 getKBID(QFE.HotFixID)라는 함수로 값을 가져가도로고되어 있죠?
그전에 아래 작업을 먼저 진행하여, 링크 오류를 없애 주기 위해서 입니다.
일부 패치 HotFixID의 경우 KB 웹문서로 만들어 지지 않았을 수 있죠, 바로 Q, M또는 아예 번호가 없는 경우
이에 대한 수정을 할 필요가 있겠죠. 이작업을 진행해 주는것이 바로 아래 문장들 입니다.
Dim KBNumber
KBNumber = right(HotFixID,6)
if isNumeric(KBNumber) then
getKBID = KBNumber
else
getKBID = "No KB Number Found"
end if
end function
KBNumber 함수에 HotFIxID 값을 확인하는데, 6자리의 값만을 가져오도록 함수를 수정후
만약 KBNumber 이 값이 숫자라면,로 getKBID값으로 넣게 되며, 숫자가 아니면, No KB Number Found의 값을 getKBID로 넣게 됩니다.
본 스크립트를 실행한 결과는 아래와 같습니다.
'프로그래밍 > SCRIPT' 카테고리의 다른 글
| GetUpdate - Windows Update 리스트 확인 (0) | 2009/09/28 |
|---|---|
| DHCP의 Badaddresses 스크립트로 지우기 (0) | 2009/09/10 |
| 지정일 이상 지난 파일 삭제 스크립트 (0) | 2009/08/05 |
| HDD 사용량 체크 후 메일 발송 (0) | 2009/07/31 |
| 파일 사이즈 조사 (0) | 2009/07/24 |
| 바로가기 만들기 (0) | 2009/07/24 |
- Filed under : 프로그래밍/SCRIPT
- Tag : GetUpdate, vbscript, WindowsUpdate, WMI
- Comment Trackback
GetUpdates.vbs