PowerShell을 사용하여 Windows 업데이트 자동화하는 방법: 간략한 개요

패치 관리는 IT 인프라 관리의 중요한 측면이며 Windows Workstation 백업과 마찬가지로 중요합니다. 적절한 패치 관리 솔루션을 통해 최신 소프트웨어 업데이트 및 패치를 테스트하거나 설치하여 시스템을 향상시킬 수 있습니다. 패치는 전체 소프트웨어 릴리스 사이의 기존 문제에 대한 일시적인 해결책으로 간주됩니다. 패치 관리가 효과적으로 수행되면 시스템의 취약점을 신속하게 해결하고 잠재적인 위협을 완화할 수 있습니다.

Windows는 자체 패치 관리 솔루션인 Windows Update을 제공합니다. 그러나 많은 IT 관리자들은 패치 관리 프로세스를 너무 복잡하고 시간이 많이 소요된다고 느낍니다. 또한, 시스템 업데이트는 종종 업무 시간 중 자동으로 시작되어 생산 워크플로에 영향을 줄 수 있습니다. PowerShell cmdlet을 사용하면 Windows 업데이트를 자동화하여 노력과 시간을 절약할 수 있습니다.

이 블로그 게시물에서는 PowerShell을 사용하여 Windows 업데이트를 설치하는 방법과 패치 관리 프로세스를 자동화하기 위한 유용한 PowerShell 명령어 목록이 포함되어 있습니다. 패치는 시스템에 영향을 미치는 버그나 취약점의 위험을 줄일 수 있습니다.

PSWindowsUpdate란 무엇인가요?

Windows 패치 관리 프로세스를 원활하고 쉽게 만들기 위해 Michal Gajda가 개발한 PSWindowsUpdate 모듈을 사용할 수 있습니다. 이 모듈은 공개적으로 사용 가능하며 PowerShell 갤러리에서 무료로 다운로드할 수 있습니다. 주요 요구 사항은 컴퓨터가 Vista 이상 또는 Windows Server 2008부터 시작하는 Windows OS 버전을 실행해야 한다는 것입니다. 또한 PowerShell 2.0 이상이 필요합니다.

PSWindowsUpdate를 사용하면 컴퓨터에 사용 가능한 Windows 업데이트가 있는지 확인할 수 있습니다. 또한 이 모듈을 사용하면 다양한 Windows 서버 및 워크스테이션에서 Windows 업데이트를 중앙에서 관리할 수 있습니다. 이렇게 하면 원격으로 설치된 업데이트, 제거된 업데이트 또는 숨겨진 업데이트를 제어할 수 있습니다.

PowerShell을 사용하여 Windows 업데이트 자동화하는 방법

아래에서는 PSWindowsUpdate 구성 프로세스를 개요로 설명하겠습니다. 이는 모듈을 다운로드하고 설치하는 방법 및 Windows 업데이트를 자동화하는 데 도움이 되는 명령을 확인하는 방법을 포함합니다.

PSWindowsUpdate 설치 방법

Windows 패치 관리를 효과적으로 자동화하려면 먼저 컴퓨터에 PSWindowsUpdate 모듈을 설치해야 합니다. 이를 위해 고도의 권한을 가진 PowerShell 프롬프트를 열고 다음 명령을 입력하십시오:

Install-Module -Name PSWindowsUpdate

이 명령을 실행한 후 지정된 모듈을 PSGallery에서 설치할지 물어볼 것입니다. 계속 진행하고 모든 변경 사항을 수락하려면 를 선택하십시오.

모듈을 설치한 후 원격으로 다른 컴퓨터에 액세스할 수 있어야 합니다. 이렇게 하면 원격 컴퓨터에 Windows 업데이트를 설치하여 최소한의 시간과 노력을 들이고 수행할 수 있습니다. 원격 컴퓨터에서 PSWindowsUpdate 모듈을 작동하려면 모듈을 컴퓨터에 저장하고 네트워크를 통해 공유해야 합니다.

다른 서버가 이 모듈을 가져와 배포할 수 있는 경우 자동화된 Windows 패치 관리를 설정할 수 있습니다. 이를 위해 다음 cmdlet을 실행해야 합니다:

Save-Module -Name PSWindowsUpdate -Path

여기서 PSWindowsUpdate 모듈을 저장할 위치를 지정하여 –Path 매개변수를 정의해야 합니다.

PSWindowsUpdate 사용 방법

다음 단계에서는 PowerShell cmdlet을 사용하여 Windows 업데이트를 자동화하는 방법을 배우게 됩니다. 이는 GUI가 없는 Server Core 머신에서 패치 관리 프로세스를 수행해야 하는 IT 관리자에게 큰 장점입니다. 이 cmdlet을 사용하면 관리 복잡성을 최소화하고 프로세스를 더 쉽고 오류 가능성이 적은 것으로 만들 수 있습니다.

다음 PowerShell 명령을 실행하여 사용 가능한 Windows 업데이트 전체 목록을 얻을 수 있습니다:

Get-WindowsUpdate

화면에 아래와 같은 출력이 표시됩니다:

이 정보를 통해 정확히 어떤 소프트웨어나 애플리케이션을 업데이트해야 하는지 알 수 있습니다. 그 후에 아래 명령을 입력하여 모든 업데이트를 설치할 수 있습니다. 또한 –AutoReboot 매개변수를 추가하여 시스템이 업데이트가 설치된 후 자동으로 다시 시작되도록 할 수 있습니다.

Get-WUInstall -AcceptAll –AutoReboot

재부팅을 시작하지 않으려면(생산 흐름을 방해하지 않기 위해), 다음 cmdlet을 실행할 수 있습니다:

Get-WUInstall -AcceptAll –IgnoreReboot

화면에서 패치 관리 프로세스의 진행 상황과 업데이트 전체 목록 및 현재 상태를 확인할 수 있습니다.

설치 프로세스가 완료되면 PowerShell 콘솔에 다음 메시지가 표시됩니다: ‘Reboot is required but do it manually’. 따라서 시스템을 다시 시작해야 하지만 스케줄에 가장 적합한 시간에 할 수 있습니다.

특정 업데이트만 다운로드하려면 PowerShell cmdlet에 –KBArticleID 매개변수를 추가하면 됩니다. 올바른 패치를 다운로드하려면 KB Article 번호를 지정해야 합니다. 예를 들어, Windows Malicious Software Removal Tool x64 Windows Defender Antivirus용 보안 지능 업데이트를 설치하려면 적절한 PowerShell 명령은 다음과 같이 나타날 것입니다:

Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll

이 명령을 실행한 후에는 내 컴퓨터에 해당 업데이트 중 두 개만 설치되어 있을 것입니다.

PSWindowsUpdate 명령어 개요

PSWindowsUpdate 모듈과 함께 작동할 수 있는 PowerShell cmdlet이 궁금하다면 다음 명령을 입력하고 Enter 키를 누르세요:

Get-Command –module PSWindowsUpdate

여기에서 모듈의 명령어 전체 목록을 볼 수 있습니다.

이 명령어 중 일부가 어떻게 작동하는지 살펴봅시다.

1. Get-WUHistory cmdlet을 사용하면 최신 업데이트의 이력을 볼 수 있습니다. 이 명령을 실행한 후에는 화면에 유사한 출력물을 받게 됩니다.

2. 다음 cmdlet은 Get-WUInstallerStatus로, Windows Installer 서비스의 상태를 확인하는 데 도움을 줄 수 있습니다. 여기서 설치 프로그램이 제대로 작동하는지 확인할 수 있습니다. 이 작업의 출력물은 다음과 같이 보일 수 있습니다:

3. Get-WURebootStatus cmdlet을 실행하여 특정 업데이트가 완전히 적용되기 위해 시스템을 다시 시작해야 하는지 확인할 수 있습니다.

4. Get-WUServiceManager cmdlet을 사용하여 Windows 업데이트의 소스를 확인할 수 있습니다.

5. 컴퓨터에 설치하지 않으려는 업데이트를 목록에서 숨길 수 있습니다. 이 목적을 위해 Hide-WindowsUpdate 명령을 실행하고 KB 글 numer를 지정하여 숨길 업데이트를 지정할 수 있습니다. 다음 예에서는 KB2267602 업데이트를 숨기는 방법을 보여 줍니다.

$HideList = "KB2267602"

Hide-WindowsUpdate -KBArticleID $HideList –Hide

변경 전에 선택을 확인하라는 메시지가 표시됩니다. KB 글 numer를 숨길 경우 Y를 입력합니다.

숨겨진 업데이트의 목록을 얻으려면 다음 cmdlet을 실행할 수 있습니다.

Get-WindowsUpdate –IsHidden

상태 열에서 글자 H가 표시되어 있는 것을 볼 수 있습니다. 이는 업데이트가 성공적으로 숨겨졌음을 나타냅니다. 따라서 Get-WUInstall 명령을 실행할 때 선택한 업데이트가 자동으로 사용 가능한 업데이트 목록에서 제외됩니다.

원래의 상태로 되돌리고 싶다면 PowerShell 콘솔에서 다음 cmdlet을 사용할 수 있습니다:

Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false

다시 한번, 변경 사항을 확인하려면 Y를 입력하여 확인해주시기 바랍니다.

볼 수 있듯이, 글자 H가 업데이트 상태에 더 이상 포함되어 있지 않으며, 이는 이 Windows 업데이트가 더 이상 숨겨지지 않고 컴퓨터에서 다운로드할 수 있다는 것을 의미합니다.

6. 사용 가능한 또 다른 구성 옵션은 컴퓨터에 설치된 업데이트를 제거하는 것입니다. 이를 위해 Remove-WindowsUpdate cmdlet을 사용하고 컴퓨터에서 제거하려는 KB 기사의 ID를 입력하면 됩니다. 예를 들어:

Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot

–IgnoreReboot 매개변수를

7. 마지막으로, Get-WUList cmdlet을 사용하여 원격 컴퓨터에서 사용 가능한 Windows 업데이트를 스캔할 수 있습니다.

Get-WUList –ComputerName Server5

이 cmdlet이 작동하려면 원격 컴퓨터에 PSWindowsUpdate 모듈을 설치해야 합니다. 이렇게 하면 한 번에 여러 컴퓨터의 Windows 업데이트를 자동화할 수 있습니다. PSWindowsUpdate를 사용하면 패치 관리 과정을 간단하고 효율적으로 수행할 수 있습니다.

또한, IT 관리자가 시스템 패치 중에 겪을 수 있는 관리 부담을 줄일 수 있습니다.

마무리

PSWindowsUpdate 모듈은 패치 관리 과정을 간단하고 효율적으로 만들기 위해 개발되었습니다. 업데이트 설치를 자동화함으로써 시스템이 정기적으로 업데이트되어 시스템 장애와 보안 위협의 위험을 최소화할 수 있습니다. 패치는 주로 프로그램 내에서 발견된 문제나 취약점을 해결하기 위해 개발됩니다. 그러나 정기적인 패치 관리만으로는 전체 제품 환경의 완전한 보호를 보장할 수 없습니다.

이를 위해 물리적, 가상 및 클라우드 환경에 대한 백업과 사이트 복구를 제공하는 포괄적인 데이터 보호 솔루션을 사용해야 합니다. NAKIVO Backup & Replication을 사용하면 여러 플랫폼에서 가장 중요한 데이터와 애플리케이션을 안전하게 보호하고 어떤 상황에서도 복구를 보장하며 데이터 보호 비용을 줄일 수 있습니다.

Source:
https://www.nakivo.com/blog/automate-windows-updates-using-powershell-short-overview/