Microsoft 업데이트 카탈로그는 회사 네트워크를 통해 배포할 수 있는 업데이트 목록을 제공하는 서비스입니다. 카탈로그를 사용하여 Microsoft 소프트웨어 업데이트, 드라이버 및 핫픽스에 대한 정보를 찾을 수 있습니다. WSUS에는 현재 Microsoft 업데이트 카탈로그에서 업데이트를 가져오는 옵션이 포함되어 있습니다. 그러나 WSUS의 업데이트 가져오기 작업은 현재 사용되지 않는 ActiveX를 사용하여 빌드되었습니다. WSUS 내의 이 가져오기 기능은 PowerShell 스크립트로 대체되었습니다. 스크립트를 사용하면 단일 업데이트 또는 여러 업데이트를 WSUS로 가져올 수 있습니다. 이 문서에서는 카탈로그, 가져오기 스크립트 및 스크립트 사용 방법에 대한 정보를 제공합니다.
WSUS로 업데이트를 가져오기 위한 전제 조건
PowerShell 스크립트를 사용하여 WSUS로 업데이트를 가져오려면 다음 전제 조건을 만족해야 합니다.
- WSUS 관리 콘솔이 설치된 컴퓨터는 WSUS 서버 여부와 관계없이 업데이트를 가져오는 데 사용할 수 있습니다.
- WSUS 서버에서 업데이트를 가져올 때는 WSUS Administrators 그룹 또는 로컬 Administrators 그룹의 구성원인 계정을 사용합니다.
 - 원격 컴퓨터에서 업데이트를 가져올 때는 WSUS Administrators 그룹의 구성원이면서 로컬 컴퓨터에 관리자 권한이 있는 계정을 사용합니다. 원격 컴퓨터는 네트워크를 통해 WSUS 서버에 연결할 수 있어야 합니다.
 
 
Microsoft 업데이트 카탈로그
Microsoft 업데이트 카탈로그를 사용하면 다양한 업데이트 필드 및 범주를 검색할 수 있습니다. 이러한 업데이트 필드에는 다음이 포함됩니다.
- 제목 업데이트
 - Description
 - 적용 가능한 제품
 - Classifications
 - 기술 자료 문서 번호 형식 
KB1234567 
하드웨어 업데이트 또는 드라이버를 검색할 때 다음 필드를 검색할 수도 있습니다.
- 드라이버 모델
 - Manufacturer
 - Class
 - 네 부분으로 구성된 하드웨어 ID(예: 
PCI\VEN_14E4&DEV_1677&SUBSYS_01AD1028.) 
추가 검색어를 추가하여 검색 범위를 좁힐 수 있습니다. 특정 문자열을 검색하려면 큰따옴표를 사용합니다.
Note
또한 카탈로그를 사용하면 다운로드 단추를 사용하여 사이트에서 직접 업데이트를 다운로드할 수 있습니다. 그러나 이러한 방식으로 다운로드된 업데이트의 형식은 다음과 같습니다 .MSU . WSUS는 .MSU 형식의 업데이트를 가져올 수 없습니다. 이 파일 형식은 일반적으로 Windows 업데이트 독립 실행형 설치 관리자, DISM 또는 기타 업데이트 도구에서 사용됩니다. 일부 도구에서는 .MSU에 있는 파일을 사용하기 전에 추출해야 합니다.
PowerShell을 사용하여 WSUS로 업데이트 가져오기
다음 지침을 사용하여 WSUS로 업데이트를 가져옵니다.
이 문서에 있는 WSUS로 업데이트를 가져오는 PowerShell 스크립트를 텍스트 편집기에 복사한 후
ImportUpdateToWSUS.ps1으로 저장합니다.C:\temp와 같이 쉽게 액세스할 수 있는 위치를 사용합니다.브라우저에서 Microsoft 업데이트 카탈로그(https://catalog.update.microsoft.com)를 엽니다.
WSUS로 가져올 업데이트를 검색합니다.
반환된 목록에서 WSUS로 가져올 업데이트를 선택합니다. 업데이트 세부 정보 페이지가 열립니다.
업데이트 세부 정보 페이지의 복사 단추를 사용하여 UpdateID를 복사합니다.
스크립트를 사용하여 단일 업데이트 또는 여러 업데이트를 가져올 수 있습니다.
- 여러 업데이트를 WSUS로 가져오려면 가져올 각 업데이트에 대한 updateID를 텍스트 파일에 붙여 넣습니다. 줄당 하나의 updateID를 나열합니다. 완료되면 텍스트 파일을 저장합니다. 
C:\temp와 같이 쉽게 액세스할 수 있는 위치를 사용합니다. - 단일 업데이트를 가져오려면 단일 updateID만 복사하면 됩니다.
 
- 여러 업데이트를 WSUS로 가져오려면 가져올 각 업데이트에 대한 updateID를 텍스트 파일에 붙여 넣습니다. 줄당 하나의 updateID를 나열합니다. 완료되면 텍스트 파일을 저장합니다. 
 업데이트를 가져오려면 관리자 권한으로 PowerShell 콘솔을 열고 필요한 매개 변수를 사용하여 다음 구문으로 스크립트를 실행합니다.
C:\temp\ImportUpdateToWSUS.ps1 [-WsusServer] <String> [-PortNumber] <Int32> [-UseSsl] [-UpdateId] <String> [-UpdateIdFilePath] <string> [<CommonParameters>]예제 1: 기본 포트를 사용하는 WSUS 서버에 로그인하는 동안 다음 구문을 사용하여 단일 업데이트를 가져옵니다.
.\ImportUpdateToWSUS.ps1 -UpdateId 12345678-90ab-cdef-1234-567890abcdef예제 2: 원격 컴퓨터를 사용하여 다음 구문과 함께 SSL을 사용하여 여러 업데이트를 WSUS 서버로 가져옵니다.
.\ImportUpdateToWSUS.ps1 -WsusServer WSUSServer.contoso.com -PortNumber 8531 -UseSsl -UpdateIdFilePath C:\temp\UpdateIDs.txt가져온 업데이트에 대한 업데이트 파일은 업데이트 파일 설정에 따라 다운로드됩니다. 예를 들어 업데이트가 승인된 경우에만 이 서버에 업데이트 파일을 다운로드하는 옵션을 사용하는 경우 업데이트가 승인되면 업데이트 파일이 다운로드됩니다. 업데이트를 저장하는 옵션에 대한 자세한 내용은 1.3 WSUS 스토리지 전략 선택을 참조하세요.
WSUS로 업데이트를 가져오는 PowerShell 스크립트
<#
.SYNOPSIS
PowerShell script to import an update, or multiple updates, into WSUS based on the UpdateID from the catalog.
.DESCRIPTION
This script takes user input and attempts to connect to the WSUS server.
Then it tries to import the update by using the provided UpdateID from the catalog.
.INPUTS
The script takes WSUS server Name/IP, WSUS server port, SSL configuration option, and UpdateID as inputs. UpdateID can be viewed and copied from the update details page for any update in the catalog, https://catalog.update.microsoft.com. 
.OUTPUTS
Writes logging information to standard output.
.EXAMPLE
# Use with remote server IP, port, and SSL.
.\ImportUpdateToWSUS.ps1 -WsusServer 127.0.0.1 -PortNumber 8531 -UseSsl -UpdateId 12345678-90ab-cdef-1234-567890abcdef
.EXAMPLE
# Use with remote server Name, port, and SSL.
.\ImportUpdateToWSUS.ps1 -WsusServer WSUSServer1.us.contoso.com -PortNumber 8531 -UseSsl -UpdateId 12345678-90ab-cdef-1234-567890abcdef
.EXAMPLE
# Use with remote server IP, defaultport, and no SSL.
.\ImportUpdateToWSUS.ps1 -WsusServer 127.0.0.1  -UpdateId 12345678-90ab-cdef-1234-567890abcdef
.EXAMPLE
# Use with localhost default port.
.\ImportUpdateToWSUS.ps1 -UpdateId 12345678-90ab-cdef-1234-567890abcdef
.EXAMPLE
# Use with localhost default port, file with updateIDs.
.\ImportUpdateToWSUS.ps1 -UpdateIdFilePath .\file.txt
.NOTES  
# On error, try enabling TLS: https://learn.microsoft.com/mem/configmgr/core/plan-design/security/enable-tls-1-2-client.
# Sample registry add for the WSUS server from command line. Restarts the WSUSService and IIS after adding:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /V SchUseStrongCrypto /T REG_DWORD /D 1
## Sample registry add for the WSUS server from PowerShell. Restarts WSUSService and IIS after adding:
$registryPath = "HKLM:\Software\Microsoft\.NETFramework\v4.0.30319"
$Name = "SchUseStrongCrypto"
$value = "1" 
if (!(Test-Path $registryPath)) {
    New-Item -Path $registryPath -Force | Out-Null
}
New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType DWORD -Force | Out-Null
Restart-Service WsusService, w3svc
# Update import logs/errors are under %ProgramFiles%\Update Services\LogFiles\SoftwareDistribution.log.
#>
param(
    [Parameter(Mandatory = $false, HelpMessage = "Specifies the name of a WSUS server, if not specified connects to localhost")]
    # Specifies the name of a WSUS server. If name isn't specified, connects to localhost.
    [string]$WsusServer,
    [Parameter(Mandatory = $false, HelpMessage = "Specifies the port number to use to communicate with the upstream WSUS server, default is 8530")]
    # Specifies the port number to use to communicate with the upstream WSUS server. Default is 8530.
    [ValidateSet("80", "443", "8530", "8531")]
    [int32]$PortNumber = 8530,
    [Parameter(Mandatory = $false, HelpMessage = "Specifies that the WSUS server should use Secure Sockets Layer (SSL) via HTTPS to communicate with an upstream server")]
    # Specifies that the WSUS server should use Secure Sockets Layer (SSL) via HTTPS to communicate with an upstream server.  
    [Switch]$UseSsl,
    [Parameter(Mandatory = $true, HelpMessage = "Specifies the update Id we should import to WSUS", ParameterSetName = "Single")]
    # Specifies the update ID to import to WSUS.
    [ValidateNotNullOrEmpty()]
    [String]$UpdateId,
    [Parameter(Mandatory = $true, HelpMessage = "Specifies path to a text file containing a list of update ID's on each line", ParameterSetName = "Multiple")]
    # Specifies the path to a text file containing update IDs on each line.
    [ValidateNotNullOrEmpty()]
    [String]$UpdateIdFilePath
)
Set-StrictMode -Version Latest
# Set server options.
$serverOptions = "Get-WsusServer"
if ($psBoundParameters.containsKey('WsusServer')) { $serverOptions += " -Name $WsusServer -PortNumber $PortNumber" }
if ($UseSsl) { $serverOptions += " -UseSsl" }
# Empty updateID list.
$updateList = @()
# Get update IDs.
if ($UpdateIdFilePath) {
    if (Test-Path $UpdateIdFilePath) {
        foreach ($id in (Get-Content $UpdateIdFilePath)) {
            $updateList += $id.Trim()
        }
    }
    else {
        Write-Error "[$UpdateIdFilePath]: File not found"
		return
    }
}
else {
    $updateList = @($UpdateId)
}
# Get WSUS server.
Try {
    Write-Host "Attempting WSUS Connection using $serverOptions... " -NoNewline
    $server = invoke-expression $serverOptions
    Write-Host "Connection Successful"
}
Catch {
    Write-Error $_
    return
}
# Empty file list.
$FileList = @()
# Call ImportUpdateFromCatalogSite on WSUS.
foreach ($uid in $updateList) {
    Try {
        Write-Host "Attempting WSUS update import for Update ID: $uid... " -NoNewline
        $server.ImportUpdateFromCatalogSite($uid, $FileList)
        Write-Host "Import Successful"
    }
    Catch {
        Write-Error "Failed. $_"
    }
}
스크립트 매개 변수
              WsusServer: <문자열>
 은 WSUS 서버의 이름을 지정합니다. 이름을 지정하지 않으면 스크립트가 localhost에 연결됩니다.
- 필수: false
 - 기본값: localhost
 
              PortNumber: <Int32>
 업스트림 WSUS 서버와 통신하는 데 사용할 포트 번호를 지정합니다.
- 필수: false
 - 기본값: 8530
 - 허용되는 값: 80, 443, 8530, 8531
 
              UseSsl: <switch>
 HTTPS를 통한 SSL을 WSUS 서버와 통신하는 데 사용할지 여부를 지정합니다. 이 매개 변수 이름이 있으면 매개 변수가 테스트 $true 되고 SSL을 사용하여 WSUS 서버에 연결됩니다. 그렇지 않으면 false입니다. 
              USeSSL 매개 변수를 사용하는 경우 PortNumber를 443 또는 8531로 설정합니다.
- 필수: false
 
              UpdateId: <문자열>
 WSUS로 가져올 업데이트 ID를 지정합니다. 단일 업데이트를 가져오는 경우 이 매개 변수가 필요합니다. 
              UpdateIdFilePath 에서는 UpdateId를 사용할 수 없습니다.
- 필수: 스크립트 매개 변수로 지정된 단일 updateID를 가져올 때 true입니다.
 
              UpdateIdFilePath: <문자열>
 은 각 줄에 업데이트 ID가 포함된 텍스트 파일의 경로를 지정합니다. 여러 업데이트를 가져오는 경우 이 매개 변수가 필요합니다. 
              UpdateIdFilePath 는 UpdateId와 함께 사용할 수 없습니다.
- 필수: 텍스트 파일을 사용하여 여러 업데이트를 가져올 때 true입니다.
 
              CommonParameters: 
 Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable 및 OutVariable입니다. 자세한 내용은 about_CommonParameters를 참조하세요.
핫픽스에 대 한 액세스 제한
WSUS 관리자는 Microsoft 업데이트 카탈로그에서 다운로드한 핫픽스에 대한 액세스를 제한하는 것을 고려할 수 있습니다. 사용 가능한 핫픽스를 제한하려면 다음 단계를 완료합니다.
- IIS(인터넷 정보 서비스) 관리자 콘솔을 시작합니다.
 - WSUS 관리 웹 사이트의 콘텐츠 노드로 이동합니다.
 - 콘텐츠 홈 창에서 인증 옵션을 두 번 클릭합니다.
 - 익명 인증을 선택한 다음 오른쪽의 작업 창에서 사용 안 함을 선택합니다.
 - Windows 인증을 선택한 다음 오른쪽의 작업 창에서 사용을 선택합니다.
 - WSUS 관리 콘솔에서 핫픽스가 필요한 컴퓨터에 대한 WSUS 대상 그룹을 만들고, 해당 컴퓨터들을 그룹에 추가합니다. 컴퓨터 및 그룹에 대한 자세한 내용은 이 가이드의 WSUS 클라이언트 컴퓨터 및 WSUS 컴퓨터 그룹 관리와 WSUS 배포 가이드의 WSUS 컴퓨터 그룹 구성을 참조하세요.
 - 핫픽스 파일을 다운로드 합니다.
 - 이러한 컴퓨터의 컴퓨터 계정에만 읽을 수 있도록 이러한 파일의 사용 권한을 설정 합니다. 또한 네트워크 서비스 계정에서 파일에 대한 모든 액세스 권한을 허용해야 합니다.
 - 2단계에서 만든 WSUS 대상 그룹에 대한 핫픽스를 승인합니다.
 
Note
WSUS 서버 정리 마법사를 실행하여 승인되지 않거나거부 됨으로 설정된 Microsoft 업데이트 카탈로그에서 가져온 업데이트를 제거할 수 있습니다. WSUS 시스템에서 이전에 제거된 업데이트를 다시 가져올 수 있습니다.
다른 언어의 업데이트 가져오기
카탈로그에는 여러 언어를 지원하는 업데이트가 포함되어 있습니다.
Important
WSUS 서버에서 지원하는 언어와 가져온 업데이트에서 지원하는 언어를 일치시킵니다.
WSUS 서버가 업데이트에 포함된 모든 언어를 지원하지 않으면, 해당 업데이트는 클라이언트 컴퓨터에 배포되지 않습니다. 여러 언어를 지원하는 업데이트가 WSUS 서버에 다운로드 되었으나 아직 클라이언트 컴퓨터에 배포되지 않은 상태에서 관리자가 해당 업데이트에 포함된 언어 중 하나를 선택 해제하면, 업데이트는 클라이언트에 배포되지 않습니다.
Troubleshooting
스크립트의 ".NOTES" 섹션은 스크립트를 실행할 때 발생할 수 있는 문제를 해결하는 데 사용할 수 있습니다.
오류가 발생하면 TLS(전송 계층 보안) 1.2를 사용하도록 설정해 보세요. 자세한 내용은 클라이언트에서 TLS 1.2를 사용하도록 설정하는 방법을 참조하세요.
다음 명령을 사용하여 강력한 암호화 사용과 관련된 레지스트리 값을 추가하는 프로세스를 자동화할 수 있습니다. 레지스트리 값을 추가한 후 Windows Server Update Services 서비스 및 World Wide Web Publishing 서비스를 수동으로 다시 시작합니다.
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /V SchUseStrongCrypto /T REG_DWORD /D 1다음 PowerShell 스크립트를 실행하여 강력한 암호화 사용과 관련된 레지스트리 값을 추가하는 프로세스를 자동화합니다. 그런 다음 Windows Server Update Services 서비스 및 World Wide Web Publishing 서비스를 다시 시작합니다.
$registryPath = "HKLM:\Software\Microsoft\.NETFramework\v4.0.30319" $Name = "SchUseStrongCrypto" $value = "1" if (!(Test-Path $registryPath)) { New-Item -Path $registryPath -Force | Out-Null } New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType DWORD -Force | Out-Null Restart-Service WsusService, w3svc업데이트 가져오기와 관련된 작업 및/또는 오류는 업데이트를 가져오는 WSUS 서버의 %ProgramFiles%\Update Services\LogFiles\SoftwareDistribution.log 찾을 수 있습니다.