IT 오류해결/윈도우·부팅 오류

winget upgrade --all 사용법 - Windows 11 설치 앱 한 번에 업데이트

잡가이버 2026. 7. 31. 15:01
반응형

설치된 프로그램을 한 번에 업데이트하는 WinGet

Windows를 오래 사용하다 보면 Chrome, 반디집, PowerToys, Visual Studio Code, 7-Zip과 각종 런타임처럼 설치된 프로그램이 계속 늘어납니다.

프로그램을 하나씩 실행해 업데이트를 확인하려면 생각보다 번거롭습니다. 저도 새 Windows PC를 세팅하거나 업무용 PC를 점검할 때 먼저 WinGet으로 업데이트 가능한 프로그램을 확인하는 편입니다.

이때 사용할 수 있는 명령어가 다음과 같습니다.

winget upgrade --all

이 명령을 실행하면 WinGet이 현재 설치된 앱과 패키지 저장소의 최신 버전을 비교한 뒤 업데이트 가능한 항목을 순서대로 설치합니다.

winget upgrade --all 명령어로 Windows 11 설치 프로그램 일괄 업데이트
winget upgrade --all Windows 설치 앱 일괄 업데이트

Windows 운영체제 업데이트와는 다른 기능입니다.
Windows 누적 업데이트, 보안 업데이트와 일부 장치 드라이버는 설정 → Windows 업데이트에서 별도로 확인해야 합니다.

WinGet이란?

WinGet은 Microsoft가 제공하는 Windows용 명령줄 패키지 관리자입니다.

프로그램 이름이나 패키지 ID를 이용해 검색, 설치, 업그레이드, 제거와 복구 작업을 실행할 수 있습니다.

Windows 패키지 관리자 WinGet 명령어 실행화면

명령어 기능
winget search 설치 가능한 패키지 검색
winget install 프로그램 설치
winget list 설치된 프로그램 확인
winget upgrade 업데이트 가능한 앱 확인
winget upgrade --all 업데이트 가능한 패키지 일괄 설치
winget uninstall 프로그램 제거
winget repair 지원되는 패키지 복구
winget pin 특정 앱 업데이트 제한

WinGet 설치 여부 확인

Windows 터미널, PowerShell 또는 명령 프롬프트를 열고 다음 명령을 실행합니다.

winget --version

버전 번호가 표시되면 정상적으로 사용할 수 있습니다.

다음과 같이 명령을 찾을 수 없다는 메시지가 나오면 Microsoft Store에서 앱 설치 관리자 패키지를 업데이트합니다.

'winget'은 내부 또는 외부 명령이 아닙니다.

앱 설치 관리자 업데이트

  1. Microsoft Store를 실행합니다.
  2. 검색창에서 앱 설치 관리자를 검색합니다.
  3. Microsoft Corporation 제품인지 확인합니다.
  4. 업데이트 또는 설치를 누릅니다.
  5. Windows 터미널을 닫았다가 다시 실행합니다.
  6. winget --version을 다시 입력합니다.
WinGet은 Windows 11에 일반적으로 포함되며, 지원되는 Windows 10 환경에서도 앱 설치 관리자를 통해 사용할 수 있습니다.

업데이트 가능한 프로그램만 확인

모든 프로그램을 바로 업데이트하기 전에 목록부터 확인하는 것이 안전합니다.

winget upgrade

실행하면 다음 항목이 표시됩니다.

  • 프로그램 이름
  • 패키지 ID
  • 현재 설치 버전
  • 업데이트 가능한 버전
  • 패키지 출처
업무용 PC나 설계 프로그램이 설치된 PC라면 목록을 확인하지 않고 바로 --all을 실행하지 않는 편이 좋습니다. 플러그인과 연동 프로그램이 최신 버전에서 작동하지 않을 수도 있습니다.

winget upgrade --all 실행방법

Windows 터미널 PowerShell 명령 프롬프트 관리자 권한 실행

  1. 시작 버튼을 마우스 오른쪽 버튼으로 누릅니다.
  2. 터미널 또는 터미널 관리자를 선택합니다.
  3. PowerShell이나 명령 프롬프트 탭을 엽니다.
  4. 먼저 winget upgrade로 목록을 확인합니다.
  5. 문제가 없으면 다음 명령을 실행합니다.
winget upgrade --all

Windows 터미널에서 winget upgrade --all 명령어 실행

각 프로그램의 설치파일이 내려받아지고 기존 버전을 최신 버전으로 교체합니다.

WinGet 설치 프로그램 검색과 일괄 업데이트 완료 화면

관리자 권한이 꼭 필요한가?

WinGet 자체는 일반 권한 터미널에서도 실행할 수 있습니다.

하지만 시스템 전체에 설치된 프로그램이나 관리자 권한이 필요한 설치 프로그램을 업데이트할 때는 Windows 사용자 계정 컨트롤 창이 나타날 수 있습니다.

설치 범위 권한
현재 사용자용 앱 일반 권한으로 가능한 경우 있음
PC 전체 설치 앱 관리자 권한이 필요할 수 있음
서비스·드라이버 포함 앱 관리자 권한 필요 가능성 높음
회사 관리 PC 관리 정책에 따라 차단 가능

여러 프로그램을 한 번에 업데이트할 때는 터미널을 관리자 권한으로 실행하는 편이 오류를 줄일 수 있습니다.

사용권 동의창 없이 실행

처음 WinGet을 사용하거나 새 저장소를 이용하면 원본 및 패키지 약관 동의를 요구할 수 있습니다.

winget upgrade --all --accept-source-agreements --accept-package-agreements
옵션 기능
--accept-source-agreements 패키지 원본 이용약관 동의
--accept-package-agreements 개별 패키지 사용권 동의
이 옵션은 약관을 읽지 않고 무조건 동의해도 된다는 뜻은 아닙니다. 업무용 PC에서는 조직의 소프트웨어 설치정책과 라이선스를 먼저 확인하세요.

화면 없이 조용하게 업데이트

설치 프로그램이 지원한다면 --silent 옵션으로 설치창을 줄일 수 있습니다.

winget upgrade --all --silent --accept-source-agreements --accept-package-agreements

대화형 질문까지 끄려면 다음 옵션을 추가할 수 있습니다.

winget upgrade --all --silent --disable-interactivity --accept-source-agreements --accept-package-agreements
모든 설치 프로그램이 완전한 자동 설치를 지원하는 것은 아닙니다. 일부 프로그램은 별도 설치창, 관리자 승인 또는 재부팅 안내를 표시할 수 있습니다.

재부팅을 자동으로 허용하지 않기

WinGet은 별도의 --allow-reboot 옵션을 지정해야 설치 프로그램이 요구하는 재부팅을 허용할 수 있습니다.

업무 중이라면 이 옵션을 넣지 않고 업데이트가 모두 끝난 뒤 직접 재부팅하는 편이 안전합니다.

저장하지 않은 작업이 있는 상태에서 자동화 명령에 --allow-reboot를 넣지 마세요. 프로그램에 따라 갑작스럽게 재시동될 수 있습니다.

특정 프로그램만 업데이트

전체 업데이트보다 필요한 프로그램만 지정하는 편이 안전할 때가 있습니다.

winget upgrade --id Microsoft.PowerToys

정확한 패키지만 선택하려면 --exact를 함께 사용합니다.

winget upgrade --id Microsoft.PowerToys --exact

패키지 ID 확인

winget upgrade

출력 결과의 ID 열에 표시된 값을 복사해 사용하는 것이 가장 정확합니다.

프로그램 이름에는 공백과 비슷한 제품명이 많기 때문에 자동화할 때는 이름보다 패키지 ID를 사용하는 편이 좋습니다.

특정 버전으로 업데이트

최신 버전이 아니라 특정 버전을 설치해야 한다면 --version 옵션을 사용할 수 있습니다.

winget upgrade --id Microsoft.PowerToys --version 0.95.1

다만 저장소에 해당 버전이 남아 있어야 설치할 수 있습니다.

업무 프로그램은 업데이트에서 제외

CAD, 그래픽 프로그램, 프린터 유틸리티처럼 특정 버전을 유지해야 하는 앱은 Pin으로 고정할 수 있습니다.

winget pin add --id Microsoft.PowerToys

Pin을 추가하면 기본적으로 winget upgrade --all 대상에서 제외됩니다.

업데이트 완전 차단

winget pin add --id Microsoft.PowerToys --blocking

특정 버전 범위 유지

winget pin add --id Microsoft.PowerToys --version 0.95.*

고정 목록 확인

winget pin list

고정 해제

winget pin remove --id Microsoft.PowerToys
일반 Pin은 전체 업데이트에서 제외하지만 개별 업데이트 명령으로는 업데이트할 수 있습니다. Blocking Pin은 고정을 해제하거나 강제로 우회하기 전까지 업데이트를 막습니다.

현재 버전을 확인할 수 없는 앱 포함

업데이트 목록에 다음과 비슷한 메시지가 보일 수 있습니다.

패키지 버전을 확인할 수 없습니다.

이런 프로그램까지 포함하려면 다음 명령을 사용할 수 있습니다.

winget upgrade --all --include-unknown
현재 버전을 정확히 인식하지 못하는 프로그램을 무조건 업데이트하면 같은 버전이 다시 설치되거나 예상과 다른 설치방식이 적용될 수 있습니다. 먼저 프로그램 이름과 패키지 ID를 확인하세요.

Pin으로 고정된 프로그램까지 포함

winget upgrade --all --include-pinned

일반 Pin으로 제외된 패키지를 일시적으로 전체 업데이트에 포함할 때 사용합니다.

Blocking Pin은 --include-pinned만으로 해제되지 않을 수 있습니다. 업데이트가 반드시 필요하다면 Pin 상태를 확인한 뒤 제거하는 편이 안전합니다.

왜 일부 프로그램은 업데이트되지 않을까?

원인 설명
WinGet 패키지가 없음 저장소에 프로그램이 등록되지 않음
설치 정보 불일치 설치된 앱과 매니페스트를 연결하지 못함
현재 버전 확인 불가 레지스트리에 버전 정보가 없음
Pin 설정 업데이트 대상에서 제외됨
제조사 전용 업데이트 앱 자체 업데이트 도구 사용
기업용 배포판 일반 패키지와 제품 코드가 다름
관리자 권한 부족 설치 프로그램 실행 실패
앱 실행 중 파일 교체를 할 수 없음

Microsoft Store 앱도 모두 업데이트될까?

WinGet은 Microsoft Store 원본도 사용할 수 있지만 스토어에 설치된 모든 앱이 항상 winget upgrade --all로 관리되는 것은 아닙니다.

스토어 앱 업데이트는 Microsoft Store에서도 별도로 확인합니다.

  1. Microsoft Store를 실행합니다.
  2. 라이브러리를 선택합니다.
  3. 업데이트 확인을 누릅니다.
  4. 모두 업데이트를 실행합니다.
WinGet, Microsoft Store와 Windows Update는 서로 겹치는 부분이 있지만 완전히 같은 업데이트 시스템은 아닙니다.

WinGet 저장소 새로고침

업데이트 목록이 오래됐거나 프로그램을 찾지 못한다면 원본 정보를 새로고침합니다.

winget source update

설정된 원본을 확인하려면 다음 명령을 사용합니다.

winget source list

source 오류 초기화

원본 데이터가 손상돼 검색과 업데이트가 모두 실패한다면 관리자 권한 터미널에서 다음 명령을 검토할 수 있습니다.

winget source reset --force

그다음 원본을 다시 업데이트합니다.

winget source update
Source Reset을 실행하면 원본 설정이 기본상태로 돌아가며 사내 저장소나 직접 추가한 원본도 영향을 받을 수 있습니다. 회사 PC에서는 전산 담당자에게 먼저 확인하세요.

업데이트 오류코드 확인

WinGet이나 설치 프로그램이 숫자 오류코드를 반환하면 다음 명령으로 알려진 의미를 확인할 수 있습니다.

winget error 1603

예를 들어 1603은 MSI 설치 과정에서 자주 보이는 일반적인 치명적 설치 오류입니다.

  • 프로그램이 실행 중인지 확인
  • Windows 재부팅
  • 관리자 권한 터미널 사용
  • 기존 설치파일 손상 여부 확인
  • 저장공간 확인
  • 백신과 보안정책 확인

자세한 로그 열기

winget --open-logs

특정 업데이트 명령에서 자세한 로그를 남기려면 다음처럼 실행할 수 있습니다.

winget upgrade --all --verbose-logs

로그에는 WinGet 자체 오류와 패키지 검색, 설치 프로그램 반환코드 등이 기록됩니다.

특정 앱이 실행 중이라 업데이트가 안 될 때

Chrome, Teams, Discord나 편집 프로그램처럼 백그라운드 프로세스가 남는 앱은 업데이트가 실패할 수 있습니다.

  1. 작업 중인 파일을 저장합니다.
  2. 프로그램을 완전히 종료합니다.
  3. Ctrl + Shift + Esc로 작업관리자를 엽니다.
  4. 관련 프로세스가 남아 있는지 확인합니다.
  5. Windows 터미널에서 해당 앱만 다시 업데이트합니다.
winget upgrade --id 패키지ID --exact

회사 PC에서 실행되지 않을 때

회사에서는 그룹 정책이나 보안도구로 WinGet 기능과 패키지 원본을 제한할 수 있습니다.

  • winget 명령 자체 차단
  • Microsoft Store 원본 제한
  • 커뮤니티 저장소 사용 금지
  • 관리자 권한 제한
  • 프록시와 방화벽 차단
  • 승인되지 않은 소프트웨어 설치 금지

다음 명령으로 현재 WinGet 정보와 적용된 정책을 확인할 수 있습니다.

winget --info
회사 PC에서 명령이 된다고 임의로 프로그램을 업데이트하지 마세요. 라이선스와 사내 표준버전, 플러그인 호환성에 문제가 생길 수 있습니다.

작업 스케줄러로 자동화해도 될까?

작업 스케줄러에서 WinGet 명령을 정기 실행할 수는 있지만, 개인 PC에서도 완전 무인 자동 업데이트는 신중하게 설정해야 합니다.

업데이트 과정에서 관리자 승인, 설치 약관, 프로그램 종료와 재부팅이 필요할 수 있기 때문입니다.

자동화용 기본 명령 예시

winget upgrade --all --silent --disable-interactivity --accept-source-agreements --accept-package-agreements
설계 프로그램, 프린터 드라이버, 보안 프로그램과 업무 플러그인이 있는 PC라면 예약 실행보다 사용자가 목록을 확인한 뒤 업데이트하는 방식이 안전합니다.

업데이트 결과를 로그파일로 저장

PowerShell에서 실행 결과를 텍스트 파일로 저장할 수 있습니다.

winget upgrade --all --accept-source-agreements --accept-package-agreements *> "$env:USERPROFILE\Desktop\winget-upgrade-log.txt"

업데이트가 끝나면 바탕화면에서 성공과 실패한 프로그램을 확인할 수 있습니다.

자주 사용하는 WinGet 명령어

목적 명령어
버전 확인 winget --version
설치 앱 확인 winget list
업데이트 목록 확인 winget upgrade
전체 앱 업데이트 winget upgrade --all
동의창 자동 수락 --accept-source-agreements --accept-package-agreements
조용한 설치 --silent
대화창 비활성화 --disable-interactivity
Unknown 앱 포함 --include-unknown
원본 새로고침 winget source update
앱 버전 고정 winget pin add --id 패키지ID

제가 개인 PC에서 사용하는 순서

저라면 처음부터 무조건 전체 업데이트를 실행하지 않고 먼저 다음 명령으로 목록을 확인합니다.

winget source update
winget upgrade

브라우저, 압축 프로그램, 런타임과 일반 유틸리티만 있다면 프로그램을 모두 종료한 뒤 전체 업데이트를 실행합니다.

winget upgrade --all --accept-source-agreements --accept-package-agreements

반대로 CAD, Adobe 플러그인, 장비 연동 프로그램처럼 버전 호환성이 중요한 앱이 있다면 Pin으로 제외하거나 필요한 앱만 패키지 ID로 지정합니다.

업데이트가 끝난 뒤에는 Windows Update와 Microsoft Store 라이브러리도 별도로 확인합니다. WinGet 하나만 실행했다고 PC의 모든 업데이트가 끝난 것은 아니기 때문입니다.

자주 생기는 궁금증

winget upgrade --all은 Windows 업데이트도 설치하나요?

아닙니다. WinGet이 인식하는 애플리케이션 패키지를 업데이트하는 명령입니다. Windows 누적 업데이트와 보안 업데이트는 Windows Update에서 확인해야 합니다.

설치된 모든 프로그램이 업데이트되나요?

WinGet 저장소의 패키지와 설치된 프로그램이 일치하는 경우에 업데이트됩니다. 저장소에 없거나 현재 버전을 식별하지 못하면 제외될 수 있습니다.

관리자 권한으로 실행해야 하나요?

항상 필요한 것은 아니지만 PC 전체에 설치된 프로그램이나 관리자 권한을 요구하는 앱은 관리자 터미널이 필요할 수 있습니다.

특정 프로그램만 업데이트에서 빼려면 어떻게 하나요?

winget pin add --id 패키지ID로 고정하면 기본 전체 업데이트 대상에서 제외할 수 있습니다.

업데이트가 실패해도 다른 앱은 계속 진행되나요?

일반적으로 각 패키지를 순서대로 처리하며 하나가 실패해도 다음 패키지 업데이트가 진행될 수 있습니다. 완료 후 실패 목록을 확인해야 합니다.

Microsoft Store 앱도 전부 업데이트되나요?

일부 Store 패키지는 관리할 수 있지만 모든 Store 앱이 반드시 WinGet에 표시되는 것은 아닙니다. Microsoft Store 라이브러리도 별도로 확인하세요.

재부팅 없이 모든 업데이트가 끝나나요?

프로그램에 따라 재부팅이 필요할 수 있습니다. 업무 중에는 --allow-reboot 옵션을 사용하지 않는 편이 안전합니다.

자동으로 매일 실행해도 되나요?

일반 유틸리티 PC에서는 가능하지만 업무 프로그램과 플러그인 호환성이 중요한 PC는 목록을 확인한 뒤 수동으로 실행하는 편이 좋습니다.

현재 버전을 확인할 수 없다는 메시지는 무엇인가요?

설치 프로그램이 Windows에 정확한 버전 정보를 기록하지 않아 WinGet이 현재 버전을 식별하지 못하는 상태입니다. 필요하면 --include-unknown을 사용할 수 있지만 주의해야 합니다.

winget 명령어 자체가 실행되지 않습니다.

Microsoft Store에서 앱 설치 관리자를 업데이트하고, 터미널을 다시 실행한 뒤 winget --version으로 확인하세요.

반응형
그리드형