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

업그레이드된 Windows에서 SysPrep 실행 오류 해결 방법

SysPrep 유효성 검사 오류의 원인

System Center Configuration Manager(SCCM) 2012 R2를 활용해 Windows 10 배포용 참조 이미지를 생성하기 위해 설치된 시스템에서 SysPrep을 실행하던 중 예상치 못한 오류를 마주했습니다. SysPrep을 시작하자마자 다음과 같은 오류 메시지가 화면에 나타났습니다.

Sysprep was not able to validate your Windows installation. Review the log file at %Windows%\System32\Sysprep\Panther\setupact.log for details. After resolving the issue, use Sysprep to validate your installation again.

오류 메시지에 안내된 대로 %WINDIR%\System32\Sysprep\Panther 경로에 있는 setupact.log 로그 파일을 열어 원인을 분석해 보았습니다.

2016-10-23 13:12:51, Error [0x0f0036] SYSPRP spopk.dll:: Sysprep will not run on an upgraded OS. You can only run Sysprep on a custom (clean) install version of Windows.

로그를 확인해 보니 원인은 명확했습니다. SysPrep은 이전 버전의 Windows에서 업그레이드한 운영체제에서는 실행할 수 없으며, 클린(사용자 지정) 설치 버전에서만 지원된다는 것입니다. 실제로 해당 시스템은 Windows 7에서 Windows 10으로 업그레이드한 환경이었습니다.

Microsoft 기술 자료 KB828287 문서에도 이와 관련된 내용이 명시되어 있습니다. "Microsoft는 업그레이드된 설치본의 이미지를 생성하기 위해 Sysprep을 사용하는 것을 지원하지 않습니다(서비스 팩 설치는 업그레이드로 간주되지 않습니다)." 즉, SysPrep은 순수 클린 설치 환경에서만 공식적으로 지원됩니다. 그렇다면 시스템을 처음부터 다시 설치해야만 할까요?

레지스트리에서 업그레이드 표시 제거하기

다행히 간단한 우회 방법이 있습니다. Process Monitor를 사용해 sysprep.exe 프로세스를 필터링하고, 클린 설치 버전과 업그레이드 버전의 Windows 10을 서로 비교한 결과, SysPrep이 시작 시점에 시스템이 클린 설치인지 업그레이드 설치인지 판별하기 위해 확인하는 레지스트리 키 목록을 파악할 수 있었습니다.

아래 단계를 따라 하면 SysPrep이 체크하는 '업그레이드된 시스템' 표시를 제거할 수 있습니다(이 방법은 다른 Windows 버전에서도 동일하게 적용됩니다).

주의: 아래에서 소개하는 방법은 Microsoft가 공식적으로 지원하지 않는 절차이며, 이 방식으로 생성한 시스템 이미지에서 문제가 발생하지 않으리라는 보장도 없습니다. 반드시 테스트 환경에서 충분히 검증한 후 사용하시기 바랍니다.

  • 레지스트리 편집기(regedit.exe)를 실행합니다.
  • HKEY_LOCAL_MACHINE\SYSTEM\Setup 키로 이동합니다.
  • Upgrade 키(존재하는 경우)와 이름이 Upgrade인 레지스트리 값을 삭제합니다.
  • HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus 키에서 CleanupState 값을 7로 변경합니다.
  • 컴퓨터를 재시작한 뒤 SysPrep을 다시 실행해 봅니다.

Windows 10에서 스토어 앱 제거하기

: Windows 10 환경에서는 위 레지스트리 작업 외에도, 사용자들이 Microsoft Store에서 설치한 비표준 모던(Modern) 애플리케이션을 개별적으로(프로비저닝 모드가 아닌 상태로 설치된 앱) 모두 제거해야 SysPrep이 정상적으로 동작했습니다.

이러한 앱을 정리하는 방법은 크게 세 가지입니다. 모든 사용자 프로필을 삭제하거나(상황이 허용되는 경우), 모든 사용자 계정에 대해 Metro 앱을 완전히 제거하거나(권장하지 않음), 아니면 해당 앱들을 하나씩 수동으로 제거하는 것입니다. 마지막 방법은 다음과 같이 진행할 수 있습니다.

  • 먼저 PowerShell을 통해 모든 사용자 프로필에 설치된 Metro 앱 목록을 조회합니다(이때 Installed 상태의 패키지만 대상이 됩니다):
    Get-AppxPackage -AllUser | Format-List -Property PackageFullName,PackageUserInformation
  • 조회된 패키지를 하나씩 제거합니다:
    Remove-AppxPackage -Package <packagefullname>
    또는 프로비저닝 패키지까지 함께 제거하려면 다음 명령을 사용합니다:
    Remove-AppxProvisionedPackage -Online -PackageName <packagefullname>

위 과정을 마친 후 SysPrep을 다시 실행하면 업그레이드된 시스템에서도 정상적으로 이미지 캡처를 진행할 수 있습니다. 다만 앞서 언급했듯이 비공식 방법이므로, 실제 배포 환경에 적용하기 전에 충분한 테스트를 거치는 것이 좋습니다.