WUA를 사용하여 오프라인으로 업데이트 스캔

WUA(Windows 업데이트 Agent)를 사용하여 Windows 업데이트 또는 WSUS(Windows Server Update Services) 서버에 연결하지 않고 컴퓨터에서 보안 업데이트를 검색할 수 있습니다. 그러면 인터넷에 연결되지 않은 컴퓨터에서 보안 업데이트를 검색할 수 있습니다.

업데이트를 오프라인으로 검색하려면 Windows 업데이트 서명된 파일(Wsusscn2.cab)을 다운로드해야 합니다.

Wsusscn2.cab 파일은 Microsoft에서 서명한 캐비닛 파일입니다. 이 파일에는 Microsoft에서 게시한 보안 관련 업데이트에 대한 정보가 포함되어 있습니다. 인터넷에 연결되지 않은 컴퓨터를 검사하여 이러한 보안 관련 업데이트가 있는지 또는 필요한지 확인할 수 있습니다. Wsusscn2.cab 파일에는 보안 업데이트 자체가 포함되어 있지 않으므로 다른 방법을 통해 필요한 보안 관련 업데이트를 가져와서 설치해야 합니다. Windows 업데이트 사이트에서 보안 관련 업데이트가 릴리스, 제거 또는 수정됨에 따라 새 버전의 Wsusscn2.cab 파일이 주기적으로 릴리스됩니다. 최신 Wsusscn2.cab 파일은 다음 위치에서 다운로드할 수 있습니다. 다운로드 Wsusscn2.cab

최신 Wsusscn2.cab 다운로드한 후 AddScanPackageService 메서드에 파일을 제공할 수 있으며 WUA API를 사용하여 오프라인 컴퓨터에서 보안 업데이트를 검색할 수 있습니다. WUA는 오프라인 검사를 실행하기 전에 유효한 Microsoft 인증서로 Wsusscn2.cab 서명되어 있는지 확인합니다.

참고

SHA-1 사용 중단 이니셔티브에 따라 Wsusscn2.cab 파일은 SHA-1 및 SHA-2 해시 알고리즘(특히 SHA-256)을 사용하여 더 이상 이중 서명되지 않습니다. 이 파일은 이제 SHA-256만 사용하여 서명됩니다. 이제 이 파일에서 디지털 서명을 확인하는 관리자는 단일 SHA-256 서명만 예상해야 합니다.

예제

다음 예제에서는 Wsusscn2.cab 파일을 사용하여 컴퓨터를 스캔하고 누락된 업데이트를 표시합니다.

중요

이 스크립트는 Windows 업데이트 에이전트 API의 사용을 보여 줍니다. 개발자가 이러한 API를 사용하여 문제를 해결하는 방법의 예를 제공합니다. 이 스크립트는 프로덕션 코드로 사용되지 않으며 기본 Windows 업데이트 에이전트 API가 지원되지만 스크립트 자체는 Microsoft에서 지원되지 않습니다.

 

Set UpdateSession = CreateObject("Microsoft.Update.Session")
Set UpdateServiceManager = CreateObject("Microsoft.Update.ServiceManager")
Set UpdateService = UpdateServiceManager.AddScanPackageService("Offline Sync Service", "c:\wsusscn2.cab")
Set UpdateSearcher = UpdateSession.CreateUpdateSearcher()

WScript.Echo "Searching for updates..." & vbCRLF

UpdateSearcher.ServerSelection = 3 ' ssOthers

UpdateSearcher.ServiceID = UpdateService.ServiceID

Set SearchResult = UpdateSearcher.Search("IsInstalled=0")

Set Updates = SearchResult.Updates

If searchResult.Updates.Count = 0 Then
    WScript.Echo "There are no applicable updates."
    WScript.Quit
End If

WScript.Echo "List of applicable items on the machine when using wssuscan.cab:" & vbCRLF

For I = 0 to searchResult.Updates.Count-1
    Set update = searchResult.Updates.Item(I)
    WScript.Echo I + 1 & "> " & update.Title
Next

WScript.Quit