Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista (http://forum.oszone.net/forumdisplay.php?f=83)
-   -   [решено] Выполнение команд Dism через bat файл (http://forum.oszone.net/showthread.php?t=343790)

quelilyn3 24-01-2020 13:10 2906644

Выполнение команд Dism через bat файл
 
Как можно автоматизоровать команды Dism через bat файл?

Я использую обычные команды для экспорта, монтирования и т.д, но если их использовать через бат файл (*.bat, *.cmd) ошибка:
Error 50: The request is not supported.

p.s
Цель сделать выполнение команд без ошибок, и без установки ADK, такое делают для удобства.
Смотрел содержимое, не понял как убрать ошибки.

Код:

Dism /Mount-Wim /WimFile:"%~dp0DVD\sources\install.wim" /index:3 /MountDir:"%~dp0Mount"
Dism /Unmount-Wim /MountDir:"%~dp0Mount" /Commit


Smarty 24-01-2020 13:15 2906649

quelilyn3, сверьте свои команды с Global Options for Servicing and Imaging Commands

quelilyn3 24-01-2020 13:19 2906652

Smarty, Не понял, не вижу ошибок... Эти команды выполняются c успехом (так dism пишет), но в конце ошибка лезет.
Или что полный путь нужен, а если я его не знаю? Это неудобно каждый раз пути писать.

p.s
Пробовал по другому, переходил в папку с файлом, команды выполняет успешно, и в конце сюрприз.

Smarty 24-01-2020 13:35 2906660

quelilyn3, приведите весь текст скрипта, что между mount и unmount.

quelilyn3 24-01-2020 13:46 2906666

Цитата:

Цитата Smarty
приведите весь текст скрипта, что между mount и unmount. »

Код:

@echo off
cd /d "%~dp0DISM"
dism.exe /Mount-Wim /WimFile:"%~dp0DVD\sources\install.wim" /index:3 /MountDir:"%~dp0Mount"
reg load "HKLM\TK_SOFTWARE" "%~dp0Mount\Windows\System32\config\SOFTWARE"
reg add "HKLM\TK_SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore" /v "DisableSR" /t REG_DWORD /d "1" /f
reg unload "HKLM\TK_SOFTWARE"
dism.exe /Unmount-Wim /MountDir:"%~dp0Mount" /Commit
dism.exe /Unmount-Wim /MountDir:"%~dp0Mount" /Discard
dism.exe /Cleanup-wim
pause

Поднять права до TrustedInstaller (запуск основного файла через отдельный файл)
Код:

NSudo.exe -U:T -P:E
Или так
Код:

NSudo.exe -U:T -P:E reg load "HKLM\TK_SOFTWARE" "%~dp0Mount\Windows\System32\config\SOFTWARE"
NSudo.exe -U:T -P:E reg add "HKLM\TK_SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore" /v "DisableSR" /t REG_DWORD /d "1" /f

Я убрал всё кроме этого, ошибка осталась по прежнему
Код:

Dism /Mount-Wim /WimFile:"%~dp0DVD\sources\install.wim" /index:3 /MountDir:"%~dp0Mount"
Dism /Unmount-Wim /MountDir:"%~dp0Mount" /Commit

p.s
MSMG Toolkit работает по этому принципу, ошибок нет от него.

Vadikan 24-01-2020 13:53 2906670

quelilyn3, емнип надо использовать двойные символы процентов (%%)

Smarty 24-01-2020 13:55 2906672

Цитата:

Цитата quelilyn3
dism.exe /Unmount-Wim /MountDir:"%~dp0Mount" /Commit
dism.exe /Unmount-Wim /MountDir:"%~dp0Mount" /Discard »

Сначала вы сохраняете изменения в образе, потом отменяете?
Попробуйте так:
Код:

@echo off
dism.exe /Mount-Wim /WimFile:"%~dp0DVD\sources\install.wim" /index:3 /MountDir:"%~dp0Mount"
reg load "HKLM\TK_SOFTWARE" "%~dp0Mount\Windows\System32\config\SOFTWARE"
NSudo.exe -U:T -P:E reg add "HKLM\TK_SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore" /v "DisableSR" /t REG_DWORD /d "1" /f
reg unload "HKLM\TK_SOFTWARE"
dism.exe /Unmount-Wim /MountDir:"%~dp0Mount" /Commit
pause

Скрипт должен лежать в одной папке с папкой DVD.
Цитата:

Цитата quelilyn3
NSudo.exe -U:T »

Там владелец вроде СИСТЕМА, а не TrustedInstaller.
Цитата:

Цитата Vadikan
емнип »

вип

quelilyn3 24-01-2020 14:38 2906685

Цитата:

Цитата Smarty
Попробуйте так »

Работает, но только если установлен ADK, осталось определить местоположение самого dism.exe и nsudo.exe

%~dp0DVD
%~dp0Tools\DISM\dism.exe - со всеми файла своими
%~dp0Tools\nsudo.exe

p.s
Они в разных подпапках с bat файлом.

Код:

@echo off
"%~dp0Tools\DISM\dism.exe" /Mount-Wim /WimFile:"%~dp0DVD\sources\install.wim" /index:3 /MountDir:"%~dp0Mount"
reg load "HKLM\TK_SOFTWARE" "%~dp0Mount\Windows\System32\config\SOFTWARE"
"%~dp0Tools\NSudo.exe" -U:T -P:E reg add "HKLM\TK_SOFTWARE\Microsoft\Windows Defender\Features" /v "TamperProtection" /t REG_DWORD /d "0" /f
"%~dp0Tools\NSudo.exe" -U:T -P:E reg add "HKLM\TK_SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d "1" /f
reg unload "HKLM\TK_SOFTWARE"
"%~dp0Tools\DISM\dism.exe" /Unmount-Wim /MountDir:"%~dp0Mount" /Commit
pause

Пока что такой вариант, пробую
Работае!

Smarty 24-01-2020 14:47 2906688

quelilyn3, dism у всех лежит в папке Windows\System32, поэтому прописывать путь к нему не нужно.
У вас другая версия, что он лежит отдельно?
Цитата:

Цитата quelilyn3
reg load "HKLM\TK_SOFTWARE" »

Кавычки можно убрать.
Вообще, если вы монтируете образ только для того, чтобы отключить восстановление, то проще это сделать через SetupComplete.cmd.
И остальные твики для HKLM можно внести так же.

quelilyn3 24-01-2020 15:03 2906693

Цитата:

Цитата Smarty
У вас другая версия, что он лежит отдельно? »

ADK Preview

quelilyn3 24-01-2020 15:19 2906699

Smarty,

Конечный результат, только что делать с параметрами -U:T -P:E?
Я имею в виду, в кавычки или в переменную можно или их взять.

Код:

@echo off
set "dism_path=%~dp0Tools\DISM"
set "nsudo_path=%~dp0Tools"

"%dism_path%\dism.exe" /Mount-Wim /WimFile:"%~dp0DVD\sources\install.wim" /index:3 /MountDir:"%~dp0Mount"
reg load "HKLM\TK_SOFTWARE" "%~dp0Mount\Windows\System32\config\SOFTWARE"
"%nsudo_path%\NSudo.exe" -U:T -P:E reg add "HKLM\TK_SOFTWARE\Microsoft\Windows Defender\Features" /v "TamperProtection" /t REG_DWORD /d "0" /f
"%nsudo_path%\NSudo.exe" -U:T -P:E reg add "HKLM\TK_SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d "1" /f
reg unload "HKLM\TK_SOFTWARE"
"%dism_path%\dism.exe" /Unmount-Wim /MountDir:"%~dp0Mount" /Commit
pause

Такая же ситуация с

Код:

oscdimg.exe -lW10X64 -m -u2 -b%~dp0DVD\boot\etfsboot.com "%~dp0\DVD" %~dp0\W10X64.iso

Smarty 24-01-2020 17:03 2906726

quelilyn3, про NSudo я ничего не знаю, не пользовался.
Цитата:

Цитата quelilyn3
Такая же ситуация с »

Лучше
Код:

"%~dp0Tools\oscdimg.exe" -h -m -o -u2 -udfver102 -lCCCOMA_X64FRE_RU-RU_DV9 -bootdata:2#p0,e,b"%~dp0DVD\boot\etfsboot.com"#pEF,e,b"%~dp0DVD\efi\microsoft\boot\efisys.bin" "%~dp0DVD" "%~dp0W10X64.ISO"
Будет загрузчик для MBR и EFI.

Созданным по подобному типу "Сборщиком дистрибутива" пользуюсь года с 11-12-го.

quelilyn3 25-01-2020 13:49 2906854

Цитата:

Цитата Smarty
Лучше »

Вот про это я не знал, хотя обычный на uefi работает, может это до своего времени.

Smarty 25-01-2020 14:06 2906856

Цитата:

Цитата quelilyn3
хотя обычный на uefi работает »

На виртуалке в режиме EFI образ, записанный без \efi\microsoft\boot\efisys.bin не грузится, а виртуалкой пользуюсь часто.
На реальном железе EFI не проверял, поскольку и с BIOS (MBR) всё хорошо.
Споры по поводу BIOS\MBR vs UEFI\GPT мне не интересны, использую ежемесячный полный бекап системы, а железо укладывается и в возможности BIOS.

quelilyn3 25-01-2020 14:25 2906858

Smarty, Можете показать как сделать ISO на Powershell?

p.s
Powershell быстро развивается, в последнее время!

Smarty 25-01-2020 14:37 2906864

quelilyn3, хотите усложнить процесс? Разбирайтесь.
Здесь вроде попроще.

quelilyn3 25-01-2020 14:43 2906870

Цитата:

Цитата Smarty
хотите усложнить процесс? »

Powershell написан на C#, именно из за этого он унаследовал столько недостатков, плюсов тоже немало.

Smarty 25-01-2020 14:46 2906872

quelilyn3, что мешает? Развивайтесь, потом все покажете как это сделать на PowerShell.

quelilyn3 25-01-2020 14:49 2906874

Smarty, Давно уже всё сделано
http://thelowercasew.com/create-an-i...ith-powershell

Smarty 25-01-2020 14:56 2906876

Цитата:

Цитата quelilyn3
Давно уже всё сделано »

Ну, если вы считаете, что вместо 1 строки в CMD 80 строк на PowerShell лучше, никто вас останавливать не будет. :)

Iska 25-01-2020 20:45 2906915

Цитата:

Цитата quelilyn3
Smarty, Давно уже всё сделано
http://thelowercasew.com/create-an-i...ith-powershell »

quelilyn3, а ничего, что это ровно тот же самый код, что и по приведённой коллегой Smarty ссылке выше:
Цитата:

Цитата Smarty
quelilyn3, хотите усложнить процесс? Разбирайтесь. »

;) ?


Время: 23:29.

Время: 23:29.
© OSzone.net 2001-