Показать полную графическую версию : [решено] Выполнение команд Dism через bat файл
quelilyn3
24-01-2020, 13:10
Как можно автоматизоровать команды 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
quelilyn3, сверьте свои команды с Global Options for Servicing and Imaging Commands (https://docs.microsoft.com/ru-ru/windows-hardware/manufacture/desktop/dism-global-options-for-command-line-syntax#global-options-for-servicing-and-imaging-commands)
quelilyn3
24-01-2020, 13:19
Smarty, Не понял, не вижу ошибок... Эти команды выполняются c успехом (так dism пишет), но в конце ошибка лезет.
Или что полный путь нужен, а если я его не знаю? Это неудобно каждый раз пути писать.
p.s
Пробовал по другому, переходил в папку с файлом, команды выполняет успешно, и в конце сюрприз.
quelilyn3, приведите весь текст скрипта, что между mount и unmount.
quelilyn3
24-01-2020, 13:46
приведите весь текст скрипта, что между 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 работает по этому принципу, ошибок нет от него.
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.
NSudo.exe -U:T »
Там владелец вроде СИСТЕМА, а не TrustedInstaller.
емнип »
вип
quelilyn3
24-01-2020, 14:38
Попробуйте так »
Работает, но только если установлен 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
Пока что такой вариант, пробую
Работае!
quelilyn3, dism у всех лежит в папке Windows\System32, поэтому прописывать путь к нему не нужно.
У вас другая версия, что он лежит отдельно?
reg load "HKLM\TK_SOFTWARE" »
Кавычки можно убрать.
Вообще, если вы монтируете образ только для того, чтобы отключить восстановление, то проще это сделать через SetupComplete.cmd (http://www.oszone.net/8604/SetupComplete).
И остальные твики для HKLM можно внести так же.
quelilyn3
24-01-2020, 15:03
У вас другая версия, что он лежит отдельно? »
ADK Preview
quelilyn3
24-01-2020, 15:19
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
quelilyn3, про NSudo я ничего не знаю, не пользовался.
Такая же ситуация с »
Лучше
"%~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
Лучше »
Вот про это я не знал, хотя обычный на uefi работает, может это до своего времени.
хотя обычный на uefi работает »
На виртуалке в режиме EFI образ, записанный без \efi\microsoft\boot\efisys.bin не грузится, а виртуалкой пользуюсь часто.
На реальном железе EFI не проверял, поскольку и с BIOS (MBR) всё хорошо.
Споры по поводу BIOS\MBR vs UEFI\GPT мне не интересны, использую ежемесячный полный бекап системы, а железо укладывается и в возможности BIOS.
quelilyn3
25-01-2020, 14:25
Smarty, Можете показать как сделать ISO на Powershell?
p.s
Powershell быстро развивается, в последнее время!
quelilyn3, хотите усложнить процесс? Разбирайтесь (https://gallery.technet.microsoft.com/scriptcenter/New-ISOFile-function-a8deeffd).
Здесь (http://www.jbmurphy.com/2012/01/13/powershell-scripts-to-create-a-winpe-4-0-wimiso/) вроде попроще.
quelilyn3
25-01-2020, 14:43
хотите усложнить процесс? »
Powershell написан на C#, именно из за этого он унаследовал столько недостатков, плюсов тоже немало.
quelilyn3, что мешает? Развивайтесь, потом все покажете как это сделать на PowerShell.
quelilyn3
25-01-2020, 14:49
Smarty, Давно уже всё сделано
http://thelowercasew.com/create-an-iso-file-with-powershell
Давно уже всё сделано »
Ну, если вы считаете, что вместо 1 строки в CMD 80 строк на PowerShell лучше, никто вас останавливать не будет. :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.