[Windows Desktop] Sysprep에서 Windows 설치의 유효성을 검사할 수 없습니다. 해결하기
카테고리: Windows
Sysprep?
Sysprep(System Preparation Tool)은 Windows를 여러 컴퓨터에 배포할 수 있도록 PC 고유 정보를 제거해 ‘일반화된 상태’로 되돌리는 도구이다. 이 과정을 거치면 Windows는 특정 컴퓨터에 종속되지 않은 상태가 되며, 이를 이미지로 캡처해 다른 PC에 설치할 때 사용할 수 있다. 이후 새 PC에서 해당 이미지로 부팅 디스크를 구성하고 부팅하면 OOBE(Out-Of-Box Experience) 화면이 나타나 사용자 정보와 초기 설정을 다시 진행하게 된다.
즉, 프로그램과 설정을 미리 구성한 뒤, PC 고유 정보만 제거한 ‘나만의 커스터마이징된 Windows 이미지’를 만들어 여러 컴퓨터에 동일하게 배포할 수 있는 것이다. 이렇게 이미지를 한번 만들어두면 여러 PC에 동일한 프로그램과 설정이 필요할 때 쉽게 구성하여 사용할 수 있다.
문제 상황
대부분의 유틸들은 Sysprep 일반화 과정에서 문제 없이 진행되지만, 특정 프로그램에서 아래와 같이 설치의 유효성을 검사할 수 없다는 오류를 뿜어낸다.

해결 방안
이런 상황에서는 보통 오류 메시지를 따라가 한줄씩 읽어보면 문제가 해결된다. 아래는 오류 메시지의 일부이다.
SYSPRP Package BandizipShellext2_1.0.0.3_x64__y8jx0atjth7em was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.
SYSPRP Failed to remove apps for the current user: 0x80073cf2.
SYSPRP Exit code of RemoveAllApps thread was 0x3cf2.
SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'SysprepGeneralizeValidate' from C:\Windows\System32\AppxSysprep.dll; dwRet = 0x3cf2
SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x3cf2
SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x3cf2
SYSPRP RunDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 0x3cf2
SYSPRP WinMain:Hit failure while pre-validate sysprep generalize internal providers; hr = 0x80073cf2
위의 상황에서는 반디집의 BandizipShellext2 기능 때문에 Sysprep 일반화가 실패한 것이다. 정확히는 특정 사용자에게만 설치된 UWP 앱(BandizipShellext2) 때문에 Sysprep /generalize가 실패한 것인데, Sysprep은 모든 사용자에게 동일하게 적용되는 Windows 상태만 허용하기 때문이다.
보통 해결하는 방법은 두가지로 나뉜다. 위의 문제되는 AppxPackage를 제거하거나, UWP로 개발된 버전이 아니라 MSI/EXE 데스크톱 버전을 사용하는 방법이다.
아래는 문제되는 AppxPackage를 제거하는 PowerShell 코드이다.
get-appxpackage BandizipShellext* | Remove-AppxPackage
문제는 위와 같은 코드로 문제가 되는 해당 기능을 제거하였으므로, Sysprep 일반화에는 성공할 지 몰라도 해당 프로그램의 일부 기능이 제한되는 문제가 생길 수도 있다. 위의 경우에는 우클릭 메뉴에서 반디집 항목이 제거되는 결과가 발생한다.
사실 실무에서는 해당 메시지가 출력되면 꼭 필요한 유틸이 아닌 경우에는 포함하지 않고 이미지를 만들거나, 구버전(UWP로 개발된 버전이 아니라 MSI/EXE 데스크톱 버전)을 포함하여 이미지를 만든다.
정보의 바다를 헤엄치는 수달의 마음으로