Если вы подготовили образ операционной системы, запустили sysprep и получили данное окно с ошибкой, действуйте следующим образом:
Проверьте лог-файл setuperr.log, который находится в папке "%windir%\System32\sysprep\Panther". В случае обнаружения похожих строк,
[0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn't update the recorded state, dwRet = 31
[0x0f00ae] SYSPRP WinMain:Hit failure while processing sysprep cleanup external providers; hr = 0x8007001f
откройте реестр и проверьте следующие параметры ключа "HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\":
CleanupState должен быть равен 2,
GeneralizationState должен быть равен 7.
Если значения другие, исправьте их и запустите sysprep.
В ином случае, если вы слишком часто (более 4 раз) запускали скрипт Windows Software Licensing Rearm (slmgr.vbs /rearm) для сброса триального периода, сможете увидеть следующие строки в setuperr.log:
[0x0f0082] SYSPRP LaunchDll:Failure occurred while executing 'C:\Windows\System32\slc.dll,SLReArmWindows', returned error code -1073425657
[0x0f0070] SYSPRP RunExternalDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = -1073425657
[0x0f00a8] SYSPRP WinMain:Hit failure while processing sysprep generalize internal providers; hr = 0xc004d307
Сброс "Rearm" также автоматически производится при выполнении sysprep. Поэтому, если вы используете единый эталонный образ, постоянно раскрываете его для обновлений, а затем заново делаете sysprep, Microsoft рекомендует задействовать файл ответов Unattend.xml примерно следующего содержания:
Проверьте лог-файл setuperr.log, который находится в папке "%windir%\System32\sysprep\Panther". В случае обнаружения похожих строк,
[0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn't update the recorded state, dwRet = 31
[0x0f00ae] SYSPRP WinMain:Hit failure while processing sysprep cleanup external providers; hr = 0x8007001f
откройте реестр и проверьте следующие параметры ключа "HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\":
CleanupState должен быть равен 2,
GeneralizationState должен быть равен 7.
Если значения другие, исправьте их и запустите sysprep.
В ином случае, если вы слишком часто (более 4 раз) запускали скрипт Windows Software Licensing Rearm (slmgr.vbs /rearm) для сброса триального периода, сможете увидеть следующие строки в setuperr.log:
[0x0f0082] SYSPRP LaunchDll:Failure occurred while executing 'C:\Windows\System32\slc.dll,SLReArmWindows', returned error code -1073425657
[0x0f0070] SYSPRP RunExternalDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = -1073425657
[0x0f00a8] SYSPRP WinMain:Hit failure while processing sysprep generalize internal providers; hr = 0xc004d307
Сброс "Rearm" также автоматически производится при выполнении sysprep. Поэтому, если вы используете единый эталонный образ, постоянно раскрываете его для обновлений, а затем заново делаете sysprep, Microsoft рекомендует задействовать файл ответов Unattend.xml примерно следующего содержания:
Файл подкладывается в папку с sysprep.exe. Это позволит исключить выполнение Windows Software Licensing Rearm при использовании sysprep. Если целевая ОС 32-битная, значение параметра "processorArchitecture" должно быть установлено в "x86".
Для ОС Windows 7/2008R2 и выше можно обойтись без файла ответов. Достаточно изменить значение параметра SkipRearm с 0 на 1 в ветке реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\SoftwhereProtectionPlatform\
После распаковки образа данный параметр автоматически установится в 0.
Добра тебе человек.
ОтветитьУдалитьСпасибо, попробую!
ОтветитьУдалитьтвик рабочий! Запихнул в батник вызывающий sysprep)
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьПосле трёх дней ковыряния sysprep я создал готовый bat-файл запуска без сбоев и файл ответов unattend.xml.
ОтветитьУдалить****************************
*** Ниже описание файлов ***
****************************
1. Файл unattend.xml
- Пропускает создание нового пользователя в OOBE (SkipMachineOOBE, SkipUserOOBE)
- Фиксирует ошибки [0x0f0082], [0x0f0070], [0x0f00a8] (SkipRearm)
2. Файл Start_sysprep.bat
- Предназначен для Windows 7 x64 (не тестировался на Windows 8+ !)
- Останавливает службу WMPNetworkSvc, мешающую работе sysprep
- Переустанавливает службу MSDTC, мешающую работе sysprep
- Фиксирует ошибки [0x0f0073], [0x0f00ae]
- Запускает sysprep.exe с параметрами /oobe /shutdown /generalize /unattend(подгрузка файла ответов)
************************
*** Ниже коды файлов ***
************************
1. Содержимое файла ответов unattend.xml
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="generalize">
<component name="Microsoft-Windows-Security-Licensing-SLC" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
</component>
</settings>
</unattend>
2. Содержимое файла запуска Start_sysprep.bat
@echo off
title Sysprep batnik-starter
echo.
echo Stop service "WMPNetworkSvc"
net stop "WMPNetworkSvc"
echo.
echo Re-install service "MSDTC"
echo Work in progress...
msdtc –uninstall
timeout /t 1 /nobreak > nul
msdtc -install
echo.
echo Fix errors
rem Error #1: [0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn't update the recorded state, dwRet = 31
echo Fix #1: [0x0f0073]
rem Error #2: [0x0f00ae] SYSPRP WinMain:Hit failure while processing sysprep cleanup external providers; hr = 0x8007001f
echo Fix #2: [0x0f00ae]
reg add "HKLM\SYSTEM\Setup\Status\SysprepStatus" /v "CleanupState" /t REG_DWORD /d "0x00000002" /f
reg add "HKLM\SYSTEM\Setup\Status\SysprepStatus" /v "GeneralizationState" /t REG_DWORD /d "0x00000007" /f
echo.
rem Start sysprep with parameters
start "" "%systemroot%\system32\sysprep\sysprep.exe" /oobe /shutdown /generalize /unattend:"%systemroot%\system32\sysprep\unattend.xml"
pause
*****************************
*** Инструкция по запуску ***
*****************************
1. Предисловие. Bat-файл и файл ответов предназначены ДЛЯ WINDOWS 7 X64! Скрипт не сработает на системе x86, а также не тестировался на Windows 8+ !
2. Файлы Start_sysprep.bat и unattend.xml поместить в директорию: %systemroot%\system32\sysprep\
3. Поменять под себя пункты в unattend.xml (если требуется).
4. Запустить Start_sysprep.bat от имени администратора - обязательно!
5. Дождаться выключения системы. Готово.
Инструкция написана администратором игрового проекта Biff.pro.
Инструкция может быть скопирована и размещена без уведомления, обратных ссылок и прочего :)