|
|
楼主 |
发表于 2018-8-31 11:17:26
|
显示全部楼层
- @echo off
- SETLOCAL ENABLEDELAYEDEXPANSION
- set dism="C:\ADK\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\dism.exe"
- if not exist %Dism% (if exist %windir%\system32\dism.exe (set dism="dism.exe") else (echo 没发现dism.exe&exit))
- SET s="%~DP0install.esd"
- SET d="%~DP0Newinstall.esd"
- for %%i in (1 2 ) do (
- echo 正从旧的“install.esd”导出待编辑的%%i号映像
- %Dism% /export-image /sourceimagefile:%s% /sourceindex:%%i /destinationimagefile:"%~DP0%%i.wim" /compress:maximum /CheckIntegrity
- )
- call :oemdriver "%~DP01" "K:\USB_3.0+3.1\32" "%~DP01.wim"
- call :oemdriver "%~DP02" "K:\USB_3.0+3.1\64" "%~DP02.wim"
- cls
- echo 把刚刚处理好的新wim重新转换为esd
- for %%i in (1 2) do %Dism% /export-image /sourceimagefile:"%~DP0%%i.wim" /sourceindex:1 /destinationimagefile:%d% /Compress:recovery /CheckIntegrity
- echo 把旧esd文件中其它无需处理的映像导入新esd文件
- for %%i in (3 4 5 6 7 8 9 10) do %Dism% /export-image /sourceimagefile:%s% /sourceindex:%%i /destinationimagefile:%d% /Compress:recovery /CheckIntegrity
- pause
- exit
- :oemdriver
- rem 1号参数%1是处理时的临时目录名
- rem 2号参数%2是新的驱动包路径名
- rem 3号参数%3是待处理的映像目录路径文件名
- echo 从“%~3"映像清除旧oem驱动,并添加新oem驱动。
- rd "%~1" /Q /S >nul 2>nul
- md "%~1"
- %dism% /Mount-Image /ImageFile:"%~3" /index:1 /MountDir:"%~1" /CheckIntegrity
- ECHO.&ECHO 正在清点"%~1\WINDOWS\INF\OEM*.INF"文件......
- SET KI=
- FOR /F "DELIMS=" %%A IN ('DIR /A-D /B /O-N "%~1\WINDOWS\INF\OEM*.INF"') DO (SET KI=/DRIVER:%%A !KI!)
- IF "!KI!"=="" (ECHO 未找到已集成的OEM驱动&Pause) ELSE (
- %dism% /IMAGE:"%~1" /REMOVE-DRIVER !KI!
- rem REG LOAD HKLM\zz "%~1\WINDOWS\SYSTEM32\CONFIG\SOFTWARE"
- rem CLS&ECHO.&ECHO.&ECHO 手工清除HKLM\zz\Microsoft\Windows\CurrentVersion\Setup\PnpLockdownFiles\OEM*.inf!&ECHO.&ECHO 清除完毕才按任意键。&ECHO.&pause&pause
- rem REG unLOAD HKLM\zz
- rem CLS
- )
- %dism% /IMAGE:"%~1" /ADD-DRIVER /DRIVER:"%~2" /RECURSE /FORCEUNSIGNED
- %dism% /Unmount-Image /MountDir:"%~1" /Commit
- goto :eof
复制代码
费尔南多 刚刚升级了intel usb3.0/3.1驱动,新增了几个hwid,好似是lenovo 某新机型的usb3.1 控制器,用上面的代码,升级了十全1、2两个映像的USB 3.0/3.1 |
|