Computer >> 컴퓨터 >  >> 시스템 >> Windows 10

Windows 10에서 기본 내장 UWP(APPX) 앱을 제거하는 방법 총정리

Windows 10에는 사전 설치된 최신 UWP 앱(메트로 앱, Microsoft Store 앱 또는 APPX 패키지라고도 불림)이 여러 개 포함되어 있습니다. 계산기, 캘린더, 메일, Cortana, 지도, 뉴스, OneNote, Groove 음악, 카메라 등이 대표적입니다. 이러한 UWP 앱은 사용자가 처음 로그온할 때 사용자 프로필에 자동으로 설치됩니다. 대부분의 앱은 비즈니스 사용자에게 불필요하기 때문에 기업 환경에서는 보통 제거하는 것이 일반적입니다. 이 글에서는 Windows 10에서 기본 내장 UWP/APPX 앱을 올바르게 제거하는 방법을 소개합니다. 이를 통해 시스템 드라이브의 공간을 절약하고 시작 메뉴의 불필요한 항목까지 깔끔하게 정리할 수 있습니다.

Windows 설정에서 스토어 앱(APPX) 제거하는 방법

Windows 10에서 Microsoft Store 앱을 제거하는 가장 간단한 방법은 설정 앱을 이용하는 것입니다. 시작 버튼을 누른 후 설정 → 앱 → 앱 및 기능으로 이동합니다. 앱 목록에서 제거하려는 앱을 선택하고 제거 버튼을 클릭하면 됩니다.

다만 이 방법에는 두 가지 한계가 있습니다. 첫째, 현재 로그인한 사용자 프로필에서만 앱이 제거됩니다. 다른 새 사용자가 로그인하면 시스템 스토어에서 APPX 패키지가 다시 자동 설치됩니다. 둘째, 대부분의 사전 설치된 최신 앱은 보호되어 있어 제거 버튼 자체가 비활성화(회색 표시)되어 있는 경우가 많습니다.

이처럼 잠긴 기본 제공 시스템 앱은 PowerShell 명령줄 인터페이스(CLI)를 통해서만 제거할 수 있습니다.

PowerShell로 특정 UWP 앱 제거하기

PowerShell을 사용해 Windows 10에서 특정 UWP 앱을 제거하는 방법을 알아보겠습니다. 먼저 Windows 10의 앱은 두 가지 유형으로 구분된다는 점을 이해해야 합니다.

  • AppX 패키지 – 현재 Windows 10 사용자에게 설치된 UWP 앱
  • AppX 프로비저닝 패키지(Provisioned Package) – 사용자가 처음 시스템에 로그온할 때 설치되는 Windows 10 기본 제공 앱

PowerShell 콘솔을 관리자 권한으로 실행한 뒤, 아래 명령어로 현재 사용자 계정에 설치된 최신 앱 목록을 확인할 수 있습니다.

Get-AppxPackage | select Name,PackageFullName,NonRemovable

설정 메뉴에서 이미 제거한 앱은 이 목록에 나타나지 않습니다. 모든 사용자에 대해 설치된 앱을 확인하려면 다음과 같이 입력합니다.

Get-AppxPackage -AllUsers | select Name,PackageFullName,NonRemovable

팁. 결과를 텍스트 파일로 저장해두면 필요한 패키지 이름을 찾아보기가 훨씬 편리합니다.

Get-AppxPackage –AllUsers > c:\data\win10_apps_list.txt

앱 이름으로 검색하려면 와일드카드를 사용합니다. 아래 예시는 Bing 날씨 앱을 찾는 명령입니다.

Get-AppxPackage -AllUsers | select Name,PackageFullName,NonRemovable | where-object {$_.Name -like "*Weather*"} | Format-Table

현재 사용자에서 특정 APPX 앱을 제거하려면 PackageFullName 열의 패키지 이름을 복사하여 Remove-AppxPackage cmdlet의 인수로 전달합니다.

Remove-AppxPackage Microsoft.BingWeather_4.25.20211.0_x64__8wekyb3d8bbwe

이 명령은 현재 사용자에게만 적용됩니다. 컴퓨터의 모든 사용자에게서 앱을 제거하려면 –AllUsers 매개변수를 추가합니다.

Remove-AppxPackage -AllUsers Microsoft.BingWeather_4.25.20211.0_x64__8wekyb3d8bbwe

또는 다음과 같은 한 줄 명령어를 사용할 수도 있습니다.

Get-AppxPackage *BingWeather* -AllUsers | Remove-AppxPackage –AllUsers

특정 로컬 사용자 프로필에서만 앱을 제거해야 한다면 -User <사용자_이름> 매개변수를 사용하세요.

참고로 이 방식으로 기본 앱을 제거하더라도 앱은 시스템에 Staged(스테이징) 상태로 그대로 남아 있습니다. Staged 상태의 앱은 시스템 파티션의 C:\Program Files\WindowsApps 디렉터리에 저장되며, 이 컴퓨터에 새 사용자 계정이 생성될 때마다 자동으로 배포된다는 의미입니다.

Windows 이미지에 내장되어 모든 사용자가 처음 로그인할 때 자동으로 설치되는 Staged 앱 목록을 확인하려면 다음 명령어를 실행합니다.

Get-AppxProvisionedPackage -online | select DisplayName,PackageName

Windows 10 이미지에서 특정 Staged UWP 앱을 완전히 제거하려면 Remove-AppxProvisionedPackage cmdlet에 앱 이름을 지정합니다.

Get-AppxProvisionedPackage -online | where-object {$_.PackageName -like "*BingWeather*"} | Remove-AppxProvisionedPackage -online –Verbose

이제 새 Windows 10 사용자가 로그인해도 이 프로비저닝된 앱은 사용자 프로필에 설치되지 않습니다.

Windows 10에서 모든 기본 UWP 앱 강제 제거하는 방법

기본 제공 앱을 하나씩 제거하는 것은 매우 번거로운 작업입니다. 간단한 PowerShell 스크립트를 사용하면 모든 APPX 앱을 자동으로 일괄 제거할 수 있습니다.

주의. 다음 명령어로 모든 UWP 앱을 무분별하게 제거해서는 안 됩니다.

Get-AppXProvisionedPackage -online | Remove-AppxProvisionedPackage -online

Microsoft.VCLibs, Microsoft.NET.Native.Framework, Microsoft.NET.Native.Runtime, Microsoft.WindowsStore 같은 시스템 구성 요소성 앱은 절대 제거하지 마세요. 참고로 사진(Photos) 앱은 일부 설정을 조정하면 꽤 빠르게 동작하지만, 역시 클래식한 'Windows 사진 뷰어'만큼 편리하지는 않습니다.

또한 일부 사전 설치된 UWP 앱은 복원이 어렵다는 점도 유의해야 합니다. 예를 들어 PowerShell로 Microsoft Store를 제거한 후 Windows 10에서 이를 복구하는 것은 상당히 까다롭습니다.

따라서 제거할 프로비저닝 앱 목록을 미리 만들어 두는 것이 안전합니다.

$UWPApps = @(
"Microsoft.Microsoft3DViewer"
"Microsoft.MicrosoftOfficeHub"
"Microsoft.MicrosoftSolitaireCollection"
"Microsoft.MicrosoftStickyNotes"
"Microsoft.MixedReality.Portal"
"Microsoft.MSPaint"
"Microsoft.Office.OneNote"
"Microsoft.People"
"Microsoft.ScreenSketch"
"Microsoft.Wallet"
"Microsoft.SkypeApp"
"microsoft.windowscommunicationsapps"
"Microsoft.WindowsFeedbackHub"
"Microsoft.WindowsMaps"
"Microsoft.WindowsSoundRecorder"
"Microsoft.Xbox.TCUI"
"Microsoft.XboxApp"
"Microsoft.XboxGameOverlay"
"Microsoft.XboxGamingOverlay"
"Microsoft.XboxIdentityProvider"
"Microsoft.XboxSpeechToTextOverlay"
"Microsoft.YourPhone"
"Microsoft.ZuneMusic"
"Microsoft.ZuneVideo"
)

위 예시는 Windows 10 빌드 2004에서 불필요하다고 판단한 기본 앱 목록입니다. Windows 10 빌드에 따라 앱 목록은 달라질 수 있으므로, 반드시 자신의 빌드에서 Staged 앱 전체를 먼저 확인하고 필요에 따라 목록을 업데이트해야 합니다.

이제 Windows 10 이미지와 모든 로컬 사용자 프로필에서 해당 앱들을 제거합니다.

foreach ($UWPApp in $UWPApps) {
Get-AppxPackage -Name $UWPApp -AllUsers | Remove-AppxPackage
Get-AppXProvisionedPackage -Online | Where-Object DisplayName -eq $UWPApp | Remove-AppxProvisionedPackage -Online
}

작업이 끝나면 Windows 이미지에 남아 있는 UWP 앱 목록을 다시 확인합니다. 목록이 크게 줄어든 것을 확인할 수 있습니다.

Get-AppxProvisionedPackage -online | Select-object DisplayName

이렇게 하면 이후 생성되는 모든 새 사용자 프로필에는 사전 설치된 Windows 10 앱이 포함되지 않으며, 새 사용자 프로필 생성 속도도 눈에 띄게 빨라집니다.

힌트. UWP 앱 제거 시 0x80073CFA 오류가 발생한다면 해당 앱이 시스템에 의해 보호되고 있다는 의미입니다. 이 경우 별도의 우회 방법을 통해 APPX 패키지를 제거할 수 있습니다.

또는 Out-GridView cmdlet을 활용하면 사전 설치된 앱을 GUI 환경에서 편리하게 골라서 제거할 수 있습니다.

Get-AppxProvisionedPackage -online | Out-GridView -PassThru | Remove-AppxProvisionedPackage –online

이 스크립트는 Windows 10 이미지의 프로비저닝 앱 목록을 GUI 테이블로 표시합니다. 제거하려는 UWP 앱을 선택(Ctrl 키를 누른 채 여러 항목 선택 가능)하고 OK 버튼을 클릭하기만 하면 됩니다.

Windows 10을 사용자 PC에 배포한 후 사전 설치 앱을 제거할 수도 있습니다. 예를 들어 그룹 정책(GPO)을 통해 PowerShell 스크립트를 실행하고, WMI 필터로 Windows 10 빌드 번호를 걸러내는 방식입니다. 반대로 워크스테이션 배포에 사용하는 참조(마스터) Windows 이미지에서 APPX를 미리 제거해두는 방법도 효율적입니다. 아래에서는 마운트된 이미지 경로를 c:\offline이라고 가정합니다.

오프라인 모드로 마운트된 Windows 10 이미지에서 프로비저닝 앱을 제거하려면 다음 명령어를 사용합니다.

foreach ($UWPApp in $UWPApps) {
Get-AppXProvisionedPackage –Path c:\offline | Where-Object DisplayName -eq $UWPApp | Remove-AppxProvisionedPackage –Path c:\offline
}

제거했던 앱을 다시 설치해야 하는 경우에는 Add-AppXPackage cmdlet을 사용해 XML 매니페스트 파일에서 APPX 패키지 정보를 가져와 Windows에 재등록할 수 있습니다.

Get-AppxPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}