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

Windows 10 설치 이미지(WIM)에서 기본 앱·기능·에디션 제거하는 완벽 가이드

이 가이드에서는 Windows 10 설치 이미지(install.wim 파일)에서 Microsoft Store 프로비저닝 앱, 기능(Capabilities), 그리고 사용하지 않는 Windows 에디션을 제거하는 방법을 단계별로 소개합니다. 모든 작업은 DISM 또는 PowerShell을 사용해 수동으로 진행할 수 있으며, 스크립트를 활용하면 자동화도 가능합니다. 최종적으로는 불필요한 프로그램이나 구성 요소 없이 핵심 Microsoft Store 앱과 필수 기능만 포함된 깔끔한 Windows 10 설치 이미지를 만들 수 있습니다.

이 글은 기업 환경에서 클린 설치나 빌드 업그레이드를 위해 Windows 10 설치 이미지를 정리하고 최적화하는 과정을 다룹니다. 실제로 SCCM을 통해 setup.exe /auto upgrade 방식으로 사용자 PC의 빌드를 업그레이드했을 때(Windows 10 1803 → 1909), 이전에 삭제했던 일부 기본 제공 UWP(Microsoft Store) 앱이 다시 나타나는 문제가 발생하기도 했습니다.

참고: 이 글에서는 Windows 10 빌드 1909를 예시로 사용하지만, 다른 Windows 10 빌드에서도 동일하게 적용할 수 있습니다.

시작 전 준비 사항

Windows 10을 컴퓨터에 설치하면 실제로는 Windows 이미지인 \sources\install.wim(또는 install.esd)가 배포됩니다. 설치 이미지가 ISO 파일 형태로 저장되어 있다면 가상 CD 드라이브에 마운트한 후 E:\sources\install.wim(또는 install.esd) 파일을 로컬 디스크로 복사하세요. 디렉터리 전체를 복사해도 되지만, 실제로 필요한 것은 .wim 파일 하나입니다.

.WIM 파일 수정에는 DISM 명령이 사용됩니다. 오래된 Windows 이미지를 대상으로 작업하는 경우라면 최신 버전의 DISM을 사용하고 있는지 반드시 확인하세요. 다른 OS 버전에서 Windows 10 install.wim 파일을 다루려면 Windows ADK(Windows Assessment and Deployment Kit)를 설치해야 합니다. ADK는 https://msdn.microsoft.com/en-us/windows/hardware/dn913721.aspx 에서 다운로드할 수 있으며, 페이지 하단의 "Download the Windows ADK for Windows 10"을 클릭하면 됩니다. 현재 최신 버전은 Windows 10용 ADK 버전 2004이며, 전체 툴킷이 아닌 Deployment Tools만 설치하면 충분합니다.

이미지 수정 명령을 실행할 때는 DISM.exe의 전체 경로를 사용하는 것이 좋습니다(예: 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\dism.exe'). 구버전 DISM은 최신 .wim 파일과 호환되지 않을 수 있습니다.

WIM 파일에서 불필요한 OS 에디션 제거하기

Windows 10 미디어 생성 도구(Media Creation Tool)로 만든 설치 이미지에는 기본적으로 사용 가능한 모든 Windows 에디션이 포함되어 있습니다. 만약 한 가지 에디션(일반적으로 Professional 또는 Enterprise)만 사용한다면, 설치 이미지에서 나머지 에디션을 모두 제거할 수 있습니다.

다만 install.wim에서 불필요한 에디션을 삭제해도 .WIM 파일 크기는 크게 줄지 않습니다. XML 파일과 일부 메타데이터만 제거되기 때문입니다.

먼저 install.wim 파일에 포함된 Windows 10 에디션 목록을 확인합니다:

Dism /Get-WimInfo /WimFile:"e:\sources\install.esd"

예시 이미지에는 인덱스 1부터 9까지 총 9개의 에디션(Windows 10 Home, Home Single Language, Education, Enterprise, Pro 등)이 들어 있습니다.

ESD 파일에서 특정 Windows 10 에디션의 설치 이미지만 추출해 WIM 이미지로 내보내려면 다음 명령을 사용합니다:

Dism /export-image /SourceImageFile:c:\sources\install.esd /SourceIndex:6 /DestinationImageFile:c:\iso\install.wim /Compress:max /CheckIntegrity

이 명령은 Windows 10 Pro 한 개 에디션만 담은 새 install.wim 파일을 생성하며, 해당 에디션의 인덱스는 1로 변경됩니다.

남은 이미지의 상세 정보를 확인해 보겠습니다:

dism /get-wiminfo /wimfile:c:\iso\install.wim /index:1

Index : 4
Name : Windows 10 Pro
Description : Windows 10 Pro
Size : 14,754,777,474 bytes
WIM Bootable : No
Architecture : x64
Hal : <undefined>
Version : 10.0.18363
ServicePack Build : 418
ServicePack Level : 0
Edition : Professional
Installation : Client
ProductType : WinNT
ProductSuite : Terminal Server
System Root : WINDOWS
Directories : 22541
Files : 96467
Created : 10/7/2019 - 4:05:55 AM
Modified : 11/15/2019 - 8:46:50 AM
Languages :
en-US (Default)

여러 개의 Windows 에디션을 install.wim에 유지하고 싶다면, DISM 도구의 /delete-image 매개변수로 필요 없는 에디션만 골라서 제거할 수 있습니다.

예를 들어 인덱스 1과 3에 해당하는 Home 및 Home Single Language 에디션을 삭제하려면:

Dism /Delete-Image /ImageFile:c:\sources\install.wim /Index:1 /CheckIntegrity
Dism /Delete-Image /ImageFile:c:\sources\install.wim /Index:3 /CheckIntegrity

/CheckIntegrity 매개변수는 DISM이 이미지의 구조적 손상을 감지할 경우 WIM 파일 수정 작업을 되돌릴 수 있게 해주므로, 안전을 위해 함께 사용하는 것이 좋습니다.

에디션 이름으로 직접 삭제할 수도 있습니다:

Dism /Delete-Image /ImageFile:c:\sources\install.wim /Name:"Windows 10 Education" /CheckIntegrity

PowerShell을 사용하는 방법도 있습니다:

Remove-WindowsImage -ImagePath "c:\sources\install.wim" -Index 2 –CheckIntegrity

설치 이미지에서 기본 제공 UWP 앱 제거하기

Windows 10 설치 이미지에서 프로비저닝된 UWP(Microsoft Store) 앱을 모두 제거할 수 있습니다. 이렇게 하면 설치 속도가 빨라지고 디스크 공간도 절약됩니다. 원치 않는 위젯도 사라져 사용자가 운영 체제를 더 쉽게 파악할 수 있다는 장점도 있습니다.

DISM 또는 PowerShell을 사용해 install.wim에서 기본 제공 UWP 앱을 제거하는 방법을 살펴보겠습니다.

먼저 드라이브에 C:\mount 폴더를 생성한 뒤, Windows 설치 이미지(WIM)를 이 폴더에 마운트합니다:

dism.exe /mount-wim /wimfile:c:\iso\install.wim /mountdir:c:\mount /index:1

여기서 /index:1을 지정한 이유는 앞서 설명한 방법으로 불필요한 에디션을 이미 제거했기 때문입니다. 필요한 이미지의 인덱스를 지정하면 됩니다.

WIM 파일을 마운트한 후에는 프로비저닝된 Microsoft Store 앱 패키지 목록을 확인할 수 있습니다. 명령 출력을 텍스트 파일로 저장하면 보기 편리합니다:

Dism.exe /image:c:\mount /Get-ProvisionedAppxPackages > c:\ps\apps.txt

각 앱의 정보는 다음과 같은 형식으로 표시됩니다:

DisplayName : Microsoft.BingWeather
Version : 4.25.20211.0
Architecture : neutral
ResourceId : ~
PackageName : Microsoft.BingWeather_4.25.20211.0_neutral_~_8wekyb3d8bbwe

이제 본격적으로 불필요한 앱을 제거해 보겠습니다. 안타깝게도 Edge, Cortana, Contact Support 등 일부 앱은 제거할 수 없습니다(단, GPO로 비활성화는 가능합니다). 또한 계산기(Microsoft.WindowsCalculator), 사진 뷰어(Microsoft.Windows.Photos), Microsoft.VP9VideoExtensions는 남겨두는 것이 좋습니다. 최신 Windows 10 빌드에는 이들 앱의 클래식(데스크톱) 버전이 더 이상 포함되어 있지 않기 때문입니다. Microsoft.WindowsStore 역시 삭제하지 않는 것을 권장합니다. 한 번 제거하면 나중에 복원하기가 매우 어렵습니다.

앱은 하나씩 제거할 수도 있고 한 번에 모두 제거할 수도 있습니다. 마운트된 이미지에서 스토어 앱을 제거하려면 패키지 이름(PackageName)을 지정합니다. BingWeather 앱을 제거하는 예시입니다:

dism.exe /image:c:\mount /Remove-ProvisionedAppxPackage /PackageName:Microsoft.BingWeather_4.25.20211.0_neutral_~_8wekyb3d8bbwe

같은 방식으로 불필요한 기본 제공 앱을 모두 제거합니다. 작업이 끝나면 이미지를 언마운트하고 변경 사항을 저장합니다(아래 참조).

PowerShell 스크립트로 자동 제거하기

TechNet Gallery에서 제공하는 준비된 PowerShell 스크립트(https://gallery.technet.microsoft.com/Removing-Built-in-apps-65dc387b)를 사용해 사전 설치 앱을 제거할 수도 있습니다.

이 방법의 장점은 wim 파일을 수동으로 마운트할 필요가 없다는 점입니다. .wim 파일 경로만 지정하고 스크립트를 실행하면 됩니다. 다만 문제가 발생했을 때 오류 원인이 DISM에 있는지 스크립트 자체에 있는지 파악하기가 상대적으로 어렵다는 단점이 있습니다.

관리자 권한으로 PowerShell을 열고 다음 명령을 실행합니다:

.\removeapps.ps1 -pathtowim c:\Windows10\sources\install.wim -selectapps $true

각 앱이 별도의 줄로 표시되며, 제거(Y) 또는 유지(N) 여부를 선택할 수 있습니다.

모든 앱에 대한 선택을 마치면 스크립트가 선택된 앱들을 제거합니다. DISM과 달리 .wim 파일에 변경 사항을 따로 저장할 필요가 없습니다. 스크립트가 자동으로 저장해 주기 때문입니다.

모든 앱을 제거하려면 명령 끝의 selectapps $true 매개변수를 빼고 실행하면 됩니다. 이 경우 제거 가능한 모든 응용 프로그램이 삭제됩니다.

PowerShell 작업 시 현재 실행 정책 설정 때문에 스크립트 실행이 차단되는 오류가 발생할 수 있습니다. 이 경우 다음 명령으로 실행 정책을 변경하세요:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

이렇게 하면 PS1 스크립트를 실행할 수 있게 됩니다.

설치 이미지에서 기능(Capabilities) 및 구성 요소 비활성화 또는 제거하기

DISM을 사용하면 Windows 10 설치 이미지에서 특정 기능을 제거하거나 설치할 수 있습니다.

먼저 마운트된 이미지에 사전 설치된 구성 요소 목록을 DISM으로 확인합니다:

Dism.exe /image:c:\mount /Get-Capabilities

구성 요소는 설치됨(Installed) 또는 비활성화(Not Present) 상태로 표시됩니다.

PowerShell로도 이미지 내 모든 Windows 구성 요소 목록을 확인할 수 있습니다. 아래 예시는 설치된 구성 요소만 표시합니다:

Get-WindowsCapability -Path c:\mount|?{$_.State -eq "Installed"}

Windows 10 1909에 기본 설치되어 있는 구성 요소는 다음과 같습니다:

App.Support.QuickAssist~~~~0.0.1.0
Browser.InternetExplorer~~~~0.0.11.0
Hello.Face.18330~~~~0.0.1.0
Hello.Face.Migration.18330~~~~0.0.1.0
Language.Basic~~~en-US~0.0.1.0
Language.Handwriting~~~en-US~0.0.1.0
Language.OCR~~~en-US~0.0.1.0
MathRecognizer~~~~0.0.1.0
Media.WindowsMediaPlayer~~~~0.0.12.0
OneCoreUAP.OneSync~~~~0.0.1.0
OpenSSH.Client~~~~0.0.1.0

설치된 구성 요소는 이름으로 제거할 수 있습니다. 얼굴 인식 구성 요소 Hello.Face를 제거하는 예시입니다:

Dism.exe /image:c:\mount/Remove-Capability /CapabilityName:Hello.Face.18330~~~~0.0.1.0

반대로 이미지에 기능을 추가할 수도 있습니다. 예를 들어 모든 RSAT 관리 도구를 설치하려면:

Get-WindowsCapability -Path c:\mount |? {$_.Name -like "*RSAT*" -and $_.State -eq "NotPresent"} | Add-WindowsCapability -Path c:\mount

같은 방식으로 다른 구성 요소도 활성화/비활성화할 수 있습니다. 예를 들어 .NET 3.5를 활성화하고 SMB1을 비활성화하려면:

dism.exe /image:C:\mount /enable-feature /featurename:netfx3 /all /source:E:\sources\sxs
dism.exe /image:C:\mount /disable-feature /featurename:smb1protocol

이와 동일한 방법으로 Windows 10 설치 이미지에 드라이버나 최신 보안 업데이트를 통합할 수도 있습니다.

Windows 10 WIM 설치 이미지 최적화하기

설치 이미지 수정을 마쳤다면 /cleanup-image 매개변수로 이미지를 최적화하고 정리합니다.

/ResetBase 옵션을 사용해 이전 버전의 구성 요소를 제거합니다:

Dism /Image:C:\Mount /cleanup-image /StartComponentCleanup /ResetBase

Dism /ScanHealth로 이미지에 오류가 없는지 점검합니다.

DISM /Image:C:\Mount /Cleanup-Image /ScanHealth

마지막으로 이미지를 언마운트하고 변경 사항을 WIM 파일에 저장합니다:

dism.exe /unmount-wim /mountdir:c:\mount /commit

작업을 취소하고 싶다면 /commit 대신 /discard 매개변수를 사용해 변경 사항을 버리면 됩니다.

공간을 절약하려면 다음 명령으로 install.wim을 install.esd 형식으로 추가 압축할 수도 있습니다:

Dism /Export-Image /SourceImageFile:c:\iso\install.wim /SourceIndex:1 /DestinationImageFile:c:\iso\install.esd /Compress:recovery

이후 생성된 install.wim(또는 install.esd)을 Windows 설치 미디어로 복사합니다. 이때 .wim 파일만 교체하고 다른 파일은 수정하지 않도록 주의하세요.

설치 파일들로 ISO 이미지를 만들려면 무료 포터블 프로그램인 Folder2ISO나 유사한 프로그램을 활용하면 됩니다.