PDA

Показать полную графическую версию : При первом старте 8.1 не удается найти файл сценариев


Той Серью
08-02-2015, 15:28
Здравствуйте.
Пытаюсь восстановить предустановленную Win 8.1 из файла WIM на ноутбуке НР. Винда после развертывания образа на системный диск начала первый запуск установки.
Появляется приветствие Administrator Добро пожаловать и
На этапе настройки компонентов Prepare system вылезает окно Windows Script Host с сообщением
Не удается найти файл сценария
"c:\System.sav\Util\TDCTWKs\HideCMD.vbs //именно "с:" с маленькой буквы!

Закрываю его, появляется второе окно:
"c:\System.sav\Util\TDCTWKs\HideEXE.vbs"

Закрываю его, идет перезагрузка и все по новой, но уже вторым этапом -
потом на этапе Customize software
Checking AC Power.

В итоге оканчивается окном
Установка Windows
Не удалось выполнить синтаксический разбор или обработку файла ответов для автоматической установки
[C:Windows\panther\unattend.xml] при проходе [auditUser].
Параметры, указанные в файле ответов, не могут быть применены.
Ошибка при обработке параметров для компонента
[Microsoft-Windows-Deployment]

Потом перезагрузка с сообщением
Не удалось завершить процесс установки. Чтобы установить Windows, перезапустите программу установки.

Перезагрузка с тем же сообщением.

На диске такой папки нет. Нашел информацию:
The system.sav folder is specific to Compaq/HP systems. As there are differences in the restore procedure in different models of Compaq/HP systems, it's best advisable to refer the user manual to know if those folders can be deleted. In mosts cases, you should not, unless you're 100% sure that you possess the OEM Restore CD (different from a OEM Recovery CD).
Having said that, please contact the OEM support for more accurate information in this regard.

Как отключить выполнения этих сценариев (если без них можно обойтись в данном случае), или может, где их добыть (всю папку)?

Той Серью
08-02-2015, 15:53
Хочу добавить, что WIM я собрал из SWM, которые были нарезаны на болванки, там были и другие папки, которые не вошли в образ, я пошарился в них, но указанных скриптов в них нет. Нашел только скрипт RunCMD.vbs. Его содержание:
const CONSOLE_HIDE=0
const CONSOLE_SHOW=1
const CMD_WAIT=true

'check args
set oArgs = wscript.arguments
if oArgs.count <> 1 then
wscript.echo "Error args !!"
wscript.quit 1
end if

StrCommandLine = oArgs(0)

set oShell = wscript.createObject("WScript.Shell")
set oFS = wscript.createObject("Scripting.FileSystemObject")

oShell.run "cmd /c " & StrCommandLine, CONSOLE_HIDE, CMD_WAIT


Эти скрипты строго специфичны для каждой модели или более-менее универсальны среди линеек НР/Компак ?

Iska
08-02-2015, 15:58
Эти скрипты строго специфичны для каждой модели или более-менее универсальны среди линеек НР/Компак ? »
Той Серью, этот скрипт будет исполняться на любой машине с Windows 2000 и выше.

Той Серью
08-02-2015, 16:39
Что будет исполняться, это ясно, вопрос, нужны ли они. Где их взять. Прошелся по всем оставшимся WIM-файлам, нашел почти пустую папку System, в которой всего один файл flags. Никаких /TDCTWKs и в помине нет. Как же он образуется в процессе нормального развертывания системы с DVD ?

Vadikan
08-02-2015, 17:30
Пытаюсь восстановить предустановленную Win 8.1 из файла WIM на ноутбуке НР »
Попробуйте Refresh (http://www.outsidethebox.ms/13452/#_Toc321777318)/Reset с помощью чистого установочного диска (http://www.outsidethebox.ms/17430/#_Toc409354503).

Той Серью
08-02-2015, 21:24
Окей, выкачаю - попробую, спасибо.

А пока я тут нашел сценарий развертывания.

@ECHO OFF
REM FILE : PBR.cmd
REM VERSION: 2013-05-16
REM CYCLE : 2C14, 2014
REM USAGE : PBR.cmd


REM ====================================================
REM Setting Required Variable
REM ====================================================
SET CRM.ERR.NUM=0
SET CRM.ERR.MSG=NO ERROR DURING %~n0 PROCESSING

SET CRM.ESP.DrvLetter=P:
SET CRM.IP.DrvLetter=I:

SET CRM.WorkDir=%~dp0
SET CRM.WorkDrvLetter=%~d0
SET CRM.PostRM=\system.sav\util\PostRM\
SET CRM.PBR.TOOLPATH=%CRM.WorkDir%Tools\
SET CRM.PBR.Argu=%1
SET CRM.FLAG.Recovery=%CRM.UP.DrvLetter%%CRM.FLAG.UPPath%RImage.flg
SET CRM.FLAG.Reset=%CRM.UP.DrvLetter%%CRM.FLAG.UPPath%PBRReset.flg
SET CRM.FLAG.Refresh=%CRM.UP.DrvLetter%%CRM.FLAG.UPPath%PBRRefresh.flg
SET CRM.FLAG.BareMetal=%CRM.UP.DrvLetter%%CRM.FLAG.UPPath%PBRBareMetal.flg
SET CRM.FLAG.PBR=%CRM.UP.DrvLetter%%CRM.FLAG.UPPath%PBR.flg

SET CRM.ESP.WIM=%CRM.WorkDir%ESP.wim
SET CRM.ESP.LABEL=SYSTEM
SET CRM.ESP.FS=FAT32
SET CRM.ESP.GUID=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
SET CRM.ESP.RESTOREINDEX=1

SET CRM.BP.WIM=%CRM.WorkDir%build.wim
SET CRM.BP.DrvLetter=B:
SET CRM.BP.RESTOREINDEX=1
SET CRM.UP.WIM=%CRM.WorkDir%install*.swm
SET CRM.RESERVE.PATH=%CRM.WorkDir%RM_Reserve\
IF "%CRM.PBR.Argu%"=="A" (
GOTO REFRESH_A
)

IF "%CRM.PBR.Argu%"=="B" (
GOTO REFRESH_B
)

IF "%CRM.PBR.Argu%"=="C" (
GOTO RESET_C
)

IF "%CRM.PBR.Argu%"=="D" (
GOTO RESET_D
)




REM ====================================================
REM PBR Refresh
REM ====================================================
:REFRESH_A
GOTO END

:REFRESH_B
ECHO [%TIME%][%~nx0] PBR Refresh
SET CRM.TMP=%CRM.FLAG.Refresh%
CALL :CreateFolder "%CRM.TMP%"
ECHO %CRM.PBR.Argu% >> %CRM.TMP%
IF EXIST %CRM.TMP% (
ECHO [%TIME%][%~nx0] Created Flag : %CRM.TMP%
)

GOTO POST_PBR





REM ====================================================
REM PBR Reset
REM ====================================================

:RESET_C
ECHO [%TIME%][%~nx0] PBR Reset - C
GOTO END


:RESET_D
ECHO [%TIME%][%~nx0] PBR Reset - D


REM ----------------------
REM ASSIGN ESP DRIVE LETTER
REM ----------------------
ECHO [%time%][%~nx0] Assign ESP Drive Letter
SET CRM.TMP.GUID=%CRM.ESP.GUID%
SET CRM.TMP.DrvLetter=%CRM.ESP.DrvLetter%
SET CRM.TMP.LOG=%CRM.UP.DrvLetter%%CRM.RM.LOG.UPPath%
ECHO [%time%][%~nx0] CMD.EXE /C "%CRM.PBR.TOOLPATH%AssignDrvLetterByGUID.cmd" %CRM.TMP.GUID% %CRM.TMP.DrvLetter% %CRM.TMP.LOG%
CMD.EXE /C "%CRM.PBR.TOOLPATH%AssignDrvLetterByGUID.cmd" %CRM.TMP.GUID% %CRM.TMP.DrvLetter% %CRM.TMP.LOG%



REM ----------------------
REM Check Reset or Bare Metal
REM ----------------------
SET CRM.TMP=%CRM.ESP.DrvLetter%\EFI\

IF NOT EXIST %CRM.TMP% (
ECHO [%time%][%~nx0] NOT Found %CRM.TMP% , DO PBR BARE METAL
ECHO [%TIME%][%~nx0] Create Flag
CALL :CreateFolder "%CRM.FLAG.BareMetal%"
ECHO [%TIME%][%~nx0] >> %CRM.FLAG.BareMetal%
GOTO R_BREAEMETAL
)


:R_RESET
ECHO [%TIME%][%~nx0] Create Reset Flag
SET CRM.TMP=%CRM.FLAG.Reset%
CALL :CreateFolder "%CRM.TMP%"
ECHO %CRM.PBR.Argu% >> %CRM.TMP%
IF EXIST %CRM.TMP% (
ECHO [%TIME%][%~nx0] Created Flag : %CRM.TMP%
)



REM ----------------------
REM Restore ESP : FORMAT ESP
REM ----------------------
SET CRM.FILE1=%CRM.ESP.DrvLetter%\EFI\Microsoft\Boot\BCD
SET CRM.FILE2=%CRM.ESP.DrvLetter%\EFI\Microsoft\Boot\bootmgfw.efi

IF EXIST %CRM.FILE1% (
IF EXIST %CRM.FILE2% (
ECHO [%time%][%~nx0] Found %CRM.FILE1% and %CRM.FILE2%
GOTO RESTORE_ESPWIM
)
)
ECHO [%time%][%~nx0] Can't Found %CRM.FILE1% and %CRM.FILE2%, Format ESP


REM ----------------------
REM Restore ESP : FORMAT ESP
REM ----------------------
ECHO [%time%][%~nx0] FORMAT ESP
SET CRM.TMP.DrvLetter=%CRM.ESP.DrvLetter%
SET CRM.TMP.FS=%CRM.ESP.FS%
SET CRM.TMP.LABEL=%CRM.ESP.LABEL%
SET CRM.TMP.LOG=%CRM.UP.DrvLetter%%CRM.RM.LOG.UPPath%
ECHO [%time%][%~nx0] CSCRIPT /NOLOGO "%CRM.PBR.TOOLPATH%FormatVol.vbs" %CRM.TMP.DrvLetter% %CRM.TMP.FS% %CRM.TMP.LABEL% %CRM.TMP.LOG%
CSCRIPT /NOLOGO "%CRM.PBR.TOOLPATH%FormatVol.vbs" %CRM.TMP.DrvLetter% %CRM.TMP.FS% %CRM.TMP.LABEL% %CRM.TMP.LOG%
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=795
SET CRM.ERR.MSG=FAIL: CSCRIPT /NOLOGO "%CRM.PBR.TOOLPATH%FormatVol.vbs" %CRM.TMP.DrvLetter% %CRM.TMP.FS% %CRM.TMP.LABEL% %CRM.TMP.LOG%
GOTO ENDPROCESS
)
ECHO [%time%][%~nx0] END



REM ----------------------
REM RESTORE ESP : Copy Windows backup BCD to ESP by BCDboot command
REM ----------------------
ECHO [%time%][%~nx0] RESTORE ESP
ECHO [%time%][%~nx0] X:\Windows\System32\BCDboot.exe %CRM.UP.DrvLetter%\Windows /s %CRM.ESP.DrvLetter% /f UEFI
X:\Windows\System32\BCDboot.exe %CRM.UP.DrvLetter%\Windows /s %CRM.ESP.DrvLetter% /f UEFI
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=795
SET CRM.ERR.MSG=FAIL: X:\Windows\System32\BCDboot.exe %CRM.UP.DrvLetter%\Windows /s %CRM.ESP.DrvLetter% /f UEFI
GOTO ENDPROCESS
)



REM ----------------------
REM RESTORE ESP : Restore ESP.wim
REM ----------------------
:RESTORE_ESPWIM
ECHO [%time%][%~nx0] Dism /apply-image /imagefile:"%CRM.ESP.WIM%" /index:%CRM.ESP.RESTOREINDEX% /ApplyDir:%CRM.ESP.DrvLetter%
Dism /apply-image /imagefile:"%CRM.ESP.WIM%" /index:%CRM.ESP.RESTOREINDEX% /ApplyDir:%CRM.ESP.DrvLetter%
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=795
SET CRM.ERR.MSG=FAIL: Dism /apply-image /imagefile:"%CRM.ESP.WIM%" /index:%CRM.ESP.RESTOREINDEX% /ApplyDir:%CRM.ESP.DrvLetter%
GOTO ENDPROCESS
)
ECHO [%TIME%][%~nx0] END




GOTO POST_PBR
:R_BREAEMETAL
REM ----------------------
REM Restore Build Partition
REM ----------------------
ECHO [%time%][%~nx0] Apply build.wim to BP
ECHO [%time%][%~nx0] DISM /apply-image /imagefile:%CRM.BP.WIM% /index:%CRM.BP.RESTOREINDEX% /ApplyDir:%CRM.BP.DrvLetter%
DISM /apply-image /imagefile:%CRM.BP.WIM% /index:%CRM.BP.RESTOREINDEX% /ApplyDir:%CRM.BP.DrvLetter%
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=795
SET CRM.ERR.MSG=FAIL: DISM /apply-image /imagefile:%CRM.BP.WIM% /index:%CRM.BP.RESTOREINDEX% /ApplyDir:%CRM.BP.DrvLetter%
GOTO ENDPROCESS
)



REM ----------------------
REM Restore Factory Update
REM ----------------------
SET CRM.FU.Source=%CRM.WorkDrvLetter%\sources\FactoryUpdate\
SET CRM.FU.Dest=%CRM.UP.DrvLetter%\system.sav\FactoryUpdate\
SET CRM.XCOPY.SRC=%CRM.FU.Source%
SET CRM.XCOPY.DEST=%CRM.FU.Dest%
IF NOT EXIST %CRM.XCOPY.DEST% (MKDIR %CRM.XCOPY.DEST%)
ECHO [%time%][%~nx0] CMD /C XCOPY /Y /I /E /S /R /H %CRM.XCOPY.SRC%*.* %CRM.XCOPY.DEST%
CMD /C XCOPY /Y /I /E /S /R /H %CRM.XCOPY.SRC%*.* %CRM.XCOPY.DEST%
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=003
SET CRM.ERR.MSG=COPY FACTORY UPDATE FAIL
GOTO ENDPROCESS
)

SET CRM.FU.SWM=%CRM.XCOPY.DEST%FactoryUpdate.SWM
SET CRM.FU.WIM=%CRM.XCOPY.DEST%FactoryUpdate.WIM

IF EXIST %CRM.FU.WIM% (
GOTO FU_WIM
)

ECHO [%time%][%~nx0] Dism /apply-image /imagefile:%CRM.FU.SWM% /swmfile:%CRM.XCOPY.DEST%FactoryUpdate*.swm /index:1 /applydir:%CRM.XCOPY.DEST%
Dism /apply-image /imagefile:%CRM.FU.SWM% /swmfile:%CRM.XCOPY.DEST%FactoryUpdate*.swm /index:1 /applydir:%CRM.XCOPY.DEST%
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=003
SET CRM.ERR.MSG=FAIL: Dism /apply-image /imagefile:%CRM.FU.SWM% /swmfile:%CRM.XCOPY.DEST%FactoryUpdate*.swm /index:1 /applydir:%CRM.XCOPY.DEST%
GOTO ENDPROCESS
)
ECHO [%time%][%~nx0] DEL /Q /F %CRM.XCOPY.DEST%FactoryUpdate*.swm
DEL /Q /F %CRM.XCOPY.DEST%FactoryUpdate*.swm

GOTO FU_END
:FU_WIM
ECHO [%time%][%~nx0] Dism /apply-image /imagefile:%CRM.FU.WIM% /index:1 /applydir:%CRM.XCOPY.DEST%
Dism /apply-image /imagefile:%CRM.FU.WIM% /index:1 /applydir:%CRM.XCOPY.DEST%
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=003
SET CRM.ERR.MSG=FAIL: Dism /apply-image /imagefile:%CRM.FU.WIM% /index:1 /applydir:%CRM.XCOPY.DEST% //%CRM.UP.DrvLetter%\system.sav\FactoryUpdate\
GOTO ENDPROCESS
)
ECHO [%time%][%~nx0] DEL /Q /F %CRM.XCOPY.DEST%FactoryUpdate.WIM
DEL /Q /F %CRM.XCOPY.DEST%FactoryUpdate.WIM //после распаковки удаляется сам WIM
REM ----------------------
REM Copy Build.wim
REM ----------------------
SET CRM.COPY.SRC=%CRM.BP.WIM%
SET CRM.COPY.DEST=%CRM.UP.DrvLetter%\RM\Image\
IF NOT EXIST %CRM.XCOPY.DEST% (MKDIR %CRM.XCOPY.DEST%)
ECHO [%time%][%~nx0] COPY /Y %CRM.COPY.SRC% %CRM.COPY.DEST%
COPY /Y %CRM.COPY.SRC% %CRM.COPY.DEST%
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=003
SET CRM.ERR.MSG=FAIL: COPY /Y %CRM.COPY.SRC% %CRM.COPY.DEST%
GOTO ENDPROCESS
)



REM ----------------------
REM Copy Install*.swm
REM ----------------------
SET CRM.COPY.SRC=%CRM.UP.WIM%
SET CRM.COPY.DEST=%CRM.UP.DrvLetter%\RM\Image\
IF NOT EXIST %CRM.XCOPY.DEST% (MKDIR %CRM.XCOPY.DEST%)
ECHO [%time%][%~nx0] COPY /Y %CRM.COPY.SRC% %CRM.COPY.DEST%
COPY /Y %CRM.COPY.SRC% %CRM.COPY.DEST%
IF %errorlevel% NEQ 0 (
SET CRM.ERR.NUM=003
SET CRM.ERR.MSG=FAIL: COPY /Y %CRM.COPY.SRC% %CRM.COPY.DEST%
GOTO ENDPROCESS
)




:POST_PBR
REM ----------------------
REM Return Files
REM ----------------------
ECHO [%time%][%~nx0] CSCRIPT.EXE /NOLOGO "%CRM.RESERVE.PATH%ReturnFile.vbs" "%CRM.RESERVE.PATH%Reserve.log" "%CRM.RESERVE.PATH%" %CRM.UP.DrvLetter%
CSCRIPT.EXE /NOLOGO "%CRM.RESERVE.PATH%ReturnFile.vbs" "%CRM.RESERVE.PATH%Reserve.log" "%CRM.RESERVE.PATH%" %CRM.UP.DrvLetter%


REM ----------------------
REM Create PBR.flg and RImage.flg
REM ----------------------
SET CRM.TMP=%CRM.FLAG.Recovery%
CALL :CreateFolder "%CRM.TMP%"
ECHO %CRM.PBR.Argu% >> %CRM.TMP%
IF EXIST %CRM.TMP% (
ECHO [%TIME%][%~nx0] Created Flag : %CRM.TMP%
)


SET CRM.TMP=%CRM.FLAG.PBR%
CALL :CreateFolder "%CRM.TMP%"
ECHO %CRM.PBR.Argu% >> %CRM.TMP%
IF EXIST %CRM.TMP% (
ECHO [%TIME%][%~nx0] Created Flag : %CRM.TMP%
)



:ENDPROCESS
REM ====================================================
REM ENDPROCESS - CALL HERE TO EXIT - IF WE HAVE AN ERROR THEN LOG IT
REM ====================================================
IF %CRM.ERR.NUM% NEQ 0 (
ECHO.
ECHO ******************************************************************************
ECHO * ERROR: %CRM.ERR.NUM%
ECHO * : %CRM.ERR.MSG%
ECHO ******************************************************************************
ECHO.
)

:END
ECHO [%~nx0] %date% %time%
ECHO ********** FINISH %~nx0 **********
ECHO RETURN CODE - %CRM.ERR.NUM%

REM EXIT THE SCRIPT AND RETURN THE ERROR LEVEL
EXIT /b %CRM.ERR.NUM%



:CreateFolder
SET CRM.FullPATH=%1
SET CRM.PATH=NONE
for /f "delims==" %%F in ("%CRM.FullPATH%") do (
SET CRM.PATH=%%~dpF
)

IF "%CRM.PATH%"=="NONE" (
ECHO [%time%][%~nx0] WARNING, Create %CRM.FullPATH% Fail
) ELSE (
IF NOT EXIST "%CRM.PATH%" (
ECHO [%time%][%~nx0] MKDIR "%CRM.PATH%"
MKDIR "%CRM.PATH%"
)
)

EXIT /B

В команде
DISM /apply-image /imagefile:%CRM.BP.WIM% /index:%CRM.BP.RESTOREINDEX% /ApplyDir:%CRM.BP.DrvLetter%


%CRM.BP.DrvLetter% - 'это что такое?

Vadikan
08-02-2015, 23:46
Переменные в началеSET CRM.BP.DrvLetter=B: »
Похоже, эту букву задают целвому диску другим скриптом

Той Серью
09-02-2015, 21:25
А refresh - это процедура "Восстановление системы"? Восстанавливаемая система не успела установить драйверы устройств (хотя вайфай, например, в процессе первого старта зажглась из желтого в белый). Просто надо получить не просто работающую операционку, а полностью именно "ту самую", предустановленную.

А какова последовательность загрузки с установочного диска? Беру любой восьмерочный дистриб, удаляю с него все, кроме /boot и /efi, замещаю бутлодырь bootmgr , кидаю в корень все с первого DVD, заряжаю всем этим флэшку и при загрузке получаю Your PC needs to be repair бла бла 0xc000000F . Выводит эту картинку не биос, а загрузчик с флэшки. Но в файлах из /boot в содержимом нет такого сообщения в ASCII - а тогда кто его выводит?
После передачи управления от биос к вторичному загрузчику , кто конкретно получает это управления первым? bootmgr? Если да, то кому он потом передает управление, и на какие файлы может ссылаться?
Я к тому, что мне хочется выловить непосредственную причину незагрузки.
И что делает bootmgr.efi ?

Той Серью
09-02-2015, 21:55
А где можно достать bootmgr.exe ? В инете одни вирусняки предлагают.

Vadikan
09-02-2015, 22:22
Просто надо получить не просто работающую операционку, а полностью именно "ту самую", предустановленную. »
Угу, чтобы получить кучу ОЕМного шлака и ставить на него гигабайт обновлений. Если очень хочется шашечки, вам за 1.5-2 тысячи рублей в АСЦ их сделают быстро. Но я прозреваю, что вы хотите самостоятельно, долгими зимними вечерами. Гуд лак!

okshef
09-02-2015, 22:23
где можно достать »
c:\Windows\Boot\PCAT\
Только есть не bootmgr.exe, а просто bootmgr

Той Серью
09-02-2015, 22:48
Да просто азарт уже. Никогда например не задумывался раньше о том, какое участие принимают те или иные файлы. Вот например, есть папка /boot и и есть /efi . Что за что отвечает? Соответственно в /efi есть две папки /boot и /microsoft/boot . Да уж, это не DOS. ))

Только есть не bootmgr.exe, а просто bootmgr »Спасибо.

Той Серью
10-02-2015, 10:09
Ну чо, стал делать с того дистрибутива восстановление, но "диск на котором установлена система windows заблокирован". Я так понимаю, это потому, что драйверы не установлены? Безопасная загрузка в БИОСе отключена.

Vadikan
10-02-2015, 10:32
Той Серью, http://bit.ly/1zRQNeQ

Той Серью
10-02-2015, 13:56
Информативно. Потрясающий источник разной информации в зависимости от индивидуальных вкусов. Вот там-то я и нашел про неподписанные драйверы (которые у меня еще и не установлены). Там еще про восстановления запуска было, но зачем мне это, если моя система стартует?
Мне сейчас надо просто понять, почему притом, что я перенес все содержимое первого DVD с внешнего хранилища на загрузочную флэшку ( как вариант - на новую болванку), эти загрузочные устройства прекращают загрузку с ошибкой 34 (или 14, если используется EFI-загрузка). Если это будет решено, будет решена проблема первого диска из дисков восстановления.




© OSzone.net 2001-2012