Как да стартирате SysPrep след надстройка на Windows

Сблъска се със странна грешка при опит за изпълнение Sysprep върху вече инсталирана система, която сте планирали да използвате за създаване на референтно изображение за разполагане на Windows 10 с помощта на System Center Configuration Manager 2012 R2. При стартиране на SysPrep неочаквано се появява грешка:

Sysprep не можа да провери инсталирането на Windows. Вижте журналния файл на% Windows% \ System32 \ Sysprep \ Panther \ setupact.log за повече информация. След като отстраните проблема, проверете инсталацията отново с помощта на Sysprep.

В английската версия на Windows 10 грешката е подобна:

Sysprep не успя да валидира вашата инсталация на Windows, Прегледайте лог файла на% Windows% \ System32 \ Sysprep \ Panther \ setupact.log за подробности. След като разрешите проблема, използвайте Sysprep, за да потвърдите отново инсталацията си.

Отворете и анализирайте грешките в регистрационния файл на помощната програма Sysprep setupact.log. Следният ред веднага ви хваща окото:

2016-08-01 10:22:51, Грешка [0x0f0036] SYSPRP spopk.dll :: Sysprep няма да работи на надстроена ОС. Можете да стартирате Sysprep само в персонализирана (чиста) версия за инсталиране на Windows.

Т.е. грешката изрично гласи, че е забранено стартирането на Sysprep на системи, които са надстроени от предишна версия на Windows. В нашия случай е точно така: една система беше получена чрез надстройка от Windows 7 до Windows 10, втората чрез надстройка от Windows 8.1. Всъщност според статията на базата знания KB828287: Microsoft не поддържа използването на Sysprep за създаване на изображения за инсталации на Windows, които бяха актуализирани чрез режим на надстройка (инсталирането на SP не се счита за надстройка). Windows позволява само sysprep за системи, получени в резултат на "чиста инсталация". Наистина ли в този случай трябва да преинсталирате системата от нулата?

Успях да намеря по-просто решение. Използвайки Process Monitor с филтър за sysprep.exe процеса и сравнявайки чист и „актуализиран“ Windows 10, успях да получа списък с ключове на системния регистър, който Sysprep проверява при стартиране, за да определя дали тази система е чиста или „актуализирана“. И така, какво трябва да се направи, за да се нулира токенът на „актуализираната“ система за Windows 10, която се проверява от помощната програма Sysprep (за другите версии на ОС всичко е същото):

Важно е. Описаната по-долу техника не се поддържа официално от Microsoft и не е гарантирано, че в бъдеще няма да има проблеми със системата, получена по този начин.
  1. Отворен редактор на системния регистър (regedit.exe)
  2. Отидете до клона HKEY_LOCAL_MACHINE \ SYSTEM \ Настройка \
  3. Изтриване на вложен клон Подобрете (ако има) и параметър с име Подобрете 
  4. В клон HKEY_LOCAL_MACHINE \ SYSTEM \ Настройка \ Статус \ SysprepStatus задайте ключови стойности CleanupState  равен 7
  5. Остава да рестартирате компютъра и да опитате отново да стартирате SysPrep

съвет. В случай на Windows 10, за да работи SysPrep, беше необходимо допълнително премахване на всички нестандартни модерни приложения, които бяха инсталирани индивидуално (не в режим на предоставяне) от Microsoft Store от потребителите на системата.

Това може да стане чрез изтриване на всички потребителски профили (ако е приложимо), премахване на всички приложения на Metro за всички потребители (методът не се препоръчва) или ръчно изтриване на такива приложения. Последната опция се реализира, както следва:

  1. Ще получим списък на всички инсталирани приложения на Metro в профилите на всички потребители (интересуват ни само пакети със статуса на инсталирано): Get-AppxPackage -AllUser | Format-List -Property PackageFullName, Информация за PackageUserIn
  2. И последователно изтриването им по този начин: Премахване-AppxPackage-Пакет . Или така: Премахване-AppxProvisionedPackage -Online -PackageName