Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
@echo off REM REM Builds WinPE images from a professional REM distribution CD or from .Net server (ADS, Blade, Srv) REM
REM REM Set required variables REM set X86PLATEXT=I386 set IA64PLATEXT=IA64 set PLATEXT=%X86PLATEXT% set SRCDIR=%1 set DESTDIR=%2 set SHOWUSG=no set IMAGENAME= set CREATEIMG=no set TAGPREFIX=win set ETFSBOOTSEC=etfsboot.com set SKIPWINSXS=yes set VERSION_CHECK=yes
if "%SRCDIR%" == "" ( set SHOWUSG=yes ) else if "%DESTDIR%" == "" ( set SHOWUSG=yes ) else if "%SRCDIR%" == "/?" ( set SHOWUSG=yes )
if /i "%SHOWUSG%" == "yes" ( goto :showusage )
REM REM Parse the remaining optional arguments REM
shift
:parseargument shift set CURRENTARG=%1
if "%CURRENTARG%" == "" ( goto :donewithargs )
if /i "%CURRENTARG%" == "/nosxs" ( set SKIPWINSXS=yes goto :parseargument ) else if /i "%CURRENTARG%" == "/nover" ( set VERSION_CHECK=no goto :parseargument ) else ( set IMAGENAME=%CURRENTARG% set CREATEIMG=yes )
:donewithargs
REM REM echo SRCDIR=%SRCDIR% REM echo DESTDIR=%DESTDIR% REM echo SKIPWINSXS=%SKIPWINSXS% REM echo VERSION_CHECK=%VERSION_CHECK% REM echo IMAGENAME=%IMAGENAME% REM echo CREATEIMG=%CREATEIMG% REM
REM REM Validate source directory REM if not EXIST %SRCDIR% ( goto :showusage )
set X86DIR=%SRCDIR%\I386 set IA64DIR=%SRCDIR%\IA64
if exist %IA64DIR% ( set PLATEXT=IA64 ) else if not exist %X86DIR% ( goto :showusage )
set WINPEOPTDIR=%CD% set WINPESRCDIR=%SRCDIR%\%PLATEXT% set WINPEDESTDIR=%DESTDIR% set OPTDIROK=yes set WINPEEXTRAFILE=%WINPEOPTDIR%\extra.inf
if not exist %WINPEEXTRAFILE% ( set OPTDIROK=no echo Cannot find %WINPEEXTRAFILE% file )
if /i not "%OPTDIROK%" == "yes" ( goto :missingoptdir )
REM REM Change to optdir where we have the tools REM cd /d %WINPEOPTDIR%
REM REM Make sure we have the correct version of the media REM if /i not "%VERSION_CHECK%" == "no" ( echo Verifying media ... oemmint.exe /s:%SRCDIR% /#u:checkversion 2>1>nul
if ERRORLEVEL 1 ( echo. echo ERROR: Version mismatch, Please verify that you are using the echo correct version of Windows CD to create WinPE image. echo. goto :end )
)
REM REM Copy over the setupreg.hiv REM echo Building hives ... copy %WINPESRCDIR%\setupreg.hiv 2>1>nul
if ERRORLEVEL 1 ( echo Failed to copy setupreg.hiv file from CD goto :end )
REM REM Copy over the required registry hive files REM copy %WINPESRCDIR%\hive*.inf 2>1>nul
if ERRORLEVEL 1 ( echo Failed to copy registry hive INF files goto :end )
REM REM Copy over the intl.inf REM copy %WINPESRCDIR%\intl.inf 2>1>nul
if ERRORLEVEL 1 ( echo Failed to copy intl.inf goto :end )
REM REM Copy over the font.inf REM if EXIST %WINPESRCDIR%\font.in_ ( expand -r %WINPESRCDIR%\font.in_ %WINPEOPTDIR%\ 2>1>nul ) else ( copy %WINPESRCDIR%\font.inf %WINPEOPTDIR%\ 2>1>nul )
if ERRORLEVEL 1 ( echo Failed to copy font.inf goto :end )
REM REM Build the binary hives from INF files REM bldhives.exe .\config.inf 2>1>nul
if ERRORLEVEL 1 ( echo Failed to build hives from INF files goto :end )
REM REM Start copying the required files REM echo Copying files ... rd %WINPEDESTDIR%\. /s /q 2>1>nul mkdir %WINPEDESTDIR%\%PLATEXT% 2>1>nul
REM REM Copy the tag files from the root of the CD REM to the destination root first REM copy %SRCDIR%\%TAGPREFIX%* %WINPEDESTDIR% 2>1>nul
REM REM Copy the bootfont.bin to root of the destination REM if one exists in i386 or IA64 directory REM if exist %SRCDIR%\%PLATEXT%\bootfont.bin ( copy %SRCDIR%\%PLATEXT%\bootfont.bin %WINPEDESTDIR% 2>1>nul )
REM REM Ok, now lets do the actual work REM echo srcdir=%SRCDIR% destdir=%winpedestdir% optdir=%winpeoptdir% extra=%winpeextrafile% REM oemmint.exe /v /s:%SRCDIR% /d:%WINPEDESTDIR%\%PLATEXT% /m:%WINPEOPTDIR% /e:%WINPEEXTRAFILE% 2>nul
if ERRORLEVEL 1 ( echo Failed to copy all the required files for WinPE ) else ( echo Successfully created WinPE directory in %WINPEDESTDIR% )
REM REM Copy the WinSxS directory also (for the time being) REM
set WINSXSDIR=%WINDIR%\WinSxS
if /i "%SKIPWINSXS%" == "no" (
if exist %WINSXSDIR% (
echo Copying WinSxS files ... mkdir %WINPEDESTDIR%\%PLATEXT%\WinSxS 2>1>nul xcopy %WINSXSDIR% %WINPEDESTDIR%\%PLATEXT%\WinSxS /s /e /h 2>1>nul
if ERRORLEVEL 1 ( echo Error in copying WinSxS directory to %WINPEDESTDIR% rd %WINPEDESTDIR%\%PLATEXT%\WinSxS /s /q 2>1>nul ) else ( echo Successfully copied WinSxS directory to %WINPEDESTDIR% )
attrib -s -h -r %WINPEDESTDIR%\%PLATEXT%\WinSxS attrib -s -h -r %WINPEDESTDIR%\%PLATEXT%\WinSxS\* /s
) else ( echo Error in copying WinSxS directory to %WINPEDESTDIR% )
)
REM REM Copy some more required files REM copy %WINPEDESTDIR%\%PLATEXT%\winbom.ini %WINPEDESTDIR% 2>1>nul
REM REM Check if we need to create a image REM if /i "%CREATEIMG%" == "no" ( goto :end )
echo Creating WinPE CD image ...
REM REM Image the created install also REM set CDIMG_OPTS=-n
if "%PLATEXT%" == "%X86PLATEXT%" (
REM REM On X86 we need to user eftsboot.com REM set CDIMG_OPTS=%CDIMG_OPTS% -b%ETFSBOOTSEC%
) else (
REM REM On ia64 we need to copy setupldr.efi to floppy REM and image it and user that as the boot image REM echo Copying setupldr.efi to A:\ ... copy %WINPEDESTDIR%\%PLATEXT%\setupldr.efi a:\ 2>1>nul
if ERRORLEVEL 1 ( echo Failed to copy setupldr.efi to floppy drive to create boot image goto :end )
REM REM Image the floppy containing setupldr.efi REM echo Creating image of the floppy drive A:\ ... dskimage.exe a: efisys.bin 2>1>nul
if not EXIST efisys.bin ( echo Failed to image the floppy containing setupldr.efi for boot image. goto :end )
set CDIMG_OPTS=%CDIMG_OPTS% -befisys.bin )
REM REM Create the ISO image file now REM REM oscdimg.exe %CDIMG_OPTS% %WINPEDESTDIR% %IMAGENAME% REM echo Creating %IMAGENAME% image ... oscdimg.exe %CDIMG_OPTS% %WINPEDESTDIR% %IMAGENAME% 2>1>nul
if ERRORLEVEL 1 ( echo Failed to create the WinPE image in %IMAGENAME% goto :end ) else ( echo Successfully created WinPE image in %IMAGENAME% )
goto :end
:missingoptdir echo Your current directory is not WinPE directory. echo Install the WinPE from OPK CD to a directory, then echo change to that directory and then execute this echo mkimg.cmd from that directory goto :end
:showusage echo Usage: mkimg.cmd [/?] SourceDir DestinationDir [ImageName] echo. echo SourceDir : Drive letter to the Windows CD echo or network path to a share pointing to the root of echo the Windows CD. echo. echo DestinationDir : Path where the WinPE folder will be created echo before the CD image is created. echo. echo ImageName : Optional parameter, Specifies the file that echo will contain the WinPE ISO CD image. echo. echo. echo Example: mkimg.cmd F: c:\winpe c:\winpecd.img echo. echo In this example, F: is the drive letter that contains the Windows CD. echo This example creates a folder named C:\Winpe that contains the WINPE files. It also creates a file echo named C:\Winpecd.img that can be used to create a bootable WinPE CD. echo WinPE CD. echo.
:end if /i not "%_NTPOSTBLD%" == "" ( seterror.exe %errorlevel% )
|