본문 바로가기

윈도우 앱 자동 업데이트 완벽 가이드 윈도우 패키지 매니저 winget 활용법

윈도우 패키지 매니저 winget을 활용하여 모든 앱을 한 번에 업데이트하는 방법을 알아봅니다. winget upgrade --all 명령어를 통해 수동 업데이트의 번거로움 없이 시스템을 최신 상태로 유지하는 방법과 자동화 스크립트 작성법까지 상세히 설명합니다. 윈도우 사용자라면 꼭 알아야 할 시간 절약 팁!

winget이란 무엇인가?

윈도우 사용자라면 각 프로그램마다 별도로 업데이트를 진행해야 하는 번거로움을 경험해 보셨을 것입니다. 어떤 프로그램은 자동으로 업데이트되지만, 대부분은 수동으로 확인하고 업데이트해야 합니다. 이런 불편함을 해소하기 위해 마이크로소프트는 윈도우 패키지 매니저(Windows Package Manager) 인 winget을 개발했습니다.

 

winget은 리눅스의 apt나 맥의 brew와 유사한 오픈소스 패키지 관리 도구로, 명령 프롬프트나 파워셸을 통해 앱을 설치, 업그레이드, 제거 및 구성할 수 있게 해줍니다. 최근 윈도우 10과 11 버전에는 Windows App Installer의 일부로 기본 설치되어 있어 별도 설치 없이 바로 사용할 수 있습니다.

 

winget upgrade --all 명령어의 기본 사용법

winget upgrade --all 명령어는 시스템에 설치된 모든 앱을 한 번에 최신 버전으로 업데이트하는 강력한 기능을 제공합니다. 이 명령어를 사용하기 위한 기본적인 단계는 다음과 같습니다:

  1. 관리자 권한으로 명령 프롬프트 실행: 시작 버튼을 클릭하고 "CMD"를 입력한 후 "관리자 권한으로 실행"을 선택합니다.
  2. 업데이트 가능한 앱 목록 확인: 다음 명령어를 입력하여 업데이트 가능한 앱 목록을 확인합니다.
  3. winget upgrade
  4. 모든 앱 업데이트 실행: 다음 명령어를 입력하여 모든 앱을 한 번에 업데이트합니다.
  5. winget upgrade --all

이 명령어를 실행하면 winget이 자동으로 저장소에서 최신 버전을 확인하고, 업데이트가 필요한 모든 앱을 찾아 업그레이드 과정을 시작합니다.

winget upgrade 명령어의 다양한 옵션

winget upgrade 명령어는 다양한 옵션을 제공하여 사용자의 필요에 맞게 커스터마이징할 수 있습니다. 주요 옵션은 다음과 같습니다:

기본 구문

winget upgrade [인수] [쿼리] [옵션]

자주 사용되는 옵션

  • --id: 특정 애플리케이션 ID로 업그레이드를 제한합니다.
  • winget upgrade --id Microsoft.Teams.Free
  • --name: 애플리케이션 이름으로 검색을 제한합니다.
  • winget upgrade --name "VLC media player"
  • --version: 업그레이드할 특정 버전을 지정할 수 있습니다.
  • --silent: 설치 프로그램을 UI 없이 자동으로 실행합니다.
  • winget upgrade --all --silent
  • --uninstall-previous: 업그레이드 중 이전 패키지 버전을 제거합니다.
  • winget upgrade --id Microsoft.Teams.Free --uninstall-previous
  • --interactive: 대화형 모드를 활성화하고 설치 프로그램 진행 상황을 표시합니다.
  • --force: 해시 불일치를 무시하고 패키지 설치를 강제합니다.

특정 앱만 업데이트하는 방법

모든 앱을 업데이트하는 것이 아니라 특정 앱만 업데이트하고 싶을 때는 다음과 같은 방법을 사용할 수 있습니다:

  1. 키워드로 앱 업데이트:
  2. winget upgrade -q Teams
  3. 정확한 앱 ID로 업데이트:
  4. winget upgrade --id Microsoft.Teams.Free
  5. 앱 이름으로 업데이트:
  6. winget upgrade --name "VLC media player"

이러한 방법을 사용하면 특정 앱만 선택적으로 업데이트할 수 있어 시간과 리소스를 절약할 수 있습니다.

자동 업데이트 자동화하기

매번 수동으로 명령어를 입력하는 것도 번거로울 수 있습니다. 다행히도 winget 업데이트 과정을 자동화할 수 있는 방법이 있습니다.

배치 파일 생성 방법

  1. 메모장을 열고 다음 내용을 입력합니다:
  2. @echo off winget upgrade --all --silent
  3. 파일을 "update_apps.bat"와 같은 이름으로 저장합니다.
  4. 이 배치 파일을 관리자 권한으로 실행하면 모든 앱이 자동으로 업데이트됩니다.

파워셸 스크립트 활용

사용자 권한 문제를 해결하기 위한 더 강력한 파워셸 스크립트도 사용할 수 있습니다:

# Winget 실행 파일 경로 찾기
$Winget = ((gci "C:\Program Files\WindowsApps" -Recurse -File | Where-Object { ($_.fullname -match 'C:\\Program Files\\WindowsApps\\Microsoft.DesktopAppInstaller_' -and $_.name -match 'winget.exe') } | sort fullname -descending | %{$_.FullName}) -Split [Environment]::NewLine)

# Winget 버전 확인
echo $winget
& "$Winget" --info

# 소스 업데이트
& "$Winget" source update

# 업그레이드 명령 실행
& "$Winget" upgrade --all --silent --accept-source-agreements

이 스크립트는 관리자 권한이 없는 사용자도 앱을 업데이트할 수 있게 해주며, GPO/Intune이나 RMM 솔루션을 통해 배포할 수 있습니다.

작업 스케줄러를 이용한 자동화

윈도우의 작업 스케줄러를 사용하여 정기적으로 앱을 업데이트하도록 설정할 수 있습니다:

  1. 작업 스케줄러를 열고 "기본 작업 만들기"를 클릭합니다.
  2. 작업 이름을 지정하고 "다음"을 클릭합니다.
  3. 트리거를 설정합니다(예: 매일 또는 매주).
  4. 작업 유형으로 "프로그램 시작"을 선택합니다.
  5. 프로그램/스크립트 필드에 앞서 만든 배치 파일 또는 파워셸 스크립트의 경로를 입력합니다.
  6. "마침"을 클릭하여 작업을 저장합니다.

이렇게 설정하면 지정한 일정에 따라 자동으로 모든 앱이 업데이트됩니다. "set it and forget it" 방식으로 시스템을 항상 최신 상태로 유지할 수 있습니다.

winget upgrade 사용 시 주의사항

winget upgrade 명령어를 사용할 때 몇 가지 주의해야 할 점이 있습니다:

  1. 관리자 권한: 대부분의 앱 업데이트는 관리자 권한이 필요합니다. 일반 사용자 권한으로 실행 시 UAC 프롬프트가 여러 번 표시될 수 있습니다.
  2. --silent 옵션: --silent 옵션을 사용하면 UAC 프롬프트 없이 업데이트가 진행되지만, 반드시 관리자 권한으로 명령 프롬프트를 실행해야 합니다.
  3. 모든 앱이 지원되지 않음: 일부 앱은 winget을 통한 업데이트를 지원하지 않을 수 있습니다.
  4. 사용자 수준 설치: winget은 사용자 수준에서 설치되므로, 관리자 계정이나 서비스 계정에서 실행할 경우 일부 앱을 업데이트하지 못할 수 있습니다.

winget과 다른 패키지 관리자 비교

윈도우에서 사용할 수 있는 다른 패키지 관리자와 winget을 비교해 보겠습니다:

패키지 관리자 장점 단점
winget 마이크로소프트 공식 지원, 기본 설치됨, 명령줄 인터페이스 일부 앱 미지원, 상대적으로 새로운 도구
Chocolatey 오래된 역사, 많은 패키지 지원 별도 설치 필요, 일부 기능은 유료
Scoop 사용자 권한으로 설치 가능, 개발자 친화적 일반 사용자에게 덜 친숙함

winget은 마이크로소프트의 공식 지원을 받는 도구로, 윈도우 시스템에 기본 통합되어 있다는 큰 장점이 있습니다.

결론

winget upgrade --all 명령어는 윈도우 사용자에게 리눅스나 맥 사용자들이 오랫동안 누려온 패키지 관리의 편리함을 제공합니다. 이 명령어 하나로 시스템의 모든 앱을 최신 상태로 유지할 수 있어, 수동으로 각 앱을 업데이트하는 번거로움에서 벗어날 수 있습니다.

특히 배치 파일이나 파워셸 스크립트를 작성하고 작업 스케줄러에 등록하면, 완전 자동화된 업데이트 시스템을 구축할 수 있습니다. 이는 개인 사용자뿐만 아니라 여러 대의 컴퓨터를 관리해야 하는 IT 관리자에게도 큰 도움이 됩니다.

윈도우 패키지 관리의 새로운 시대를 여는 winget upgrade --all 명령어를 통해 더 효율적이고 안전한 컴퓨팅 환경을 만들어보세요.

자주 묻는 질문

winget은 어디에서 설치할 수 있나요?

최신 윈도우 10과 윈도우 11에는 기본적으로 Windows App Installer의 일부로 포함되어 있습니다. 만약 없다면 Microsoft Store에서 "App Installer"를 검색하여 설치할 수 있습니다.

winget upgrade --all 명령어가 모든 앱을 업데이트하지 않는 이유는 무엇인가요?

일부 앱은 winget 저장소에 등록되어 있지 않거나, 사용자 수준에서만 설치된 경우 업데이트되지 않을 수 있습니다. 또한 일부 앱은 자체 업데이트 메커니즘을 사용하여 winget을 통한 업데이트를 지원하지 않을 수도 있습니다.

관리자 권한 없이 winget을 사용할 수 있나요?

일부 앱은 관리자 권한 없이도 업데이트할 수 있지만, 대부분의 시스템 앱이나 전체 사용자용 앱은 관리자 권한이 필요합니다. 본문에 소개된 파워셸 스크립트를 사용하면 일부 권한 문제를 해결할 수 있습니다.

winget upgrade와 winget update의 차이점은 무엇인가요?

일부 문서에서는 winget update --all이라는 명령어가 언급되지만, 공식적으로는 winget upgrade --all이 올바른 명령어입니다. 두 명령어가 혼용되어 사용되는 경우가 있으나, 최신 버전의 winget에서는 upgrade를 사용하는 것이 권장됩니다.

winget으로 특정 버전의 앱으로 업데이트할 수 있나요?

네, --version 옵션을 사용하여 특정 버전으로 업데이트할 수 있습니다. 예를 들어 winget upgrade --id Microsoft.Teams.Free --version 1.5.0.0와 같이 사용할 수 있습니다.