Windows-Server-2003/tools/postbuildscripts/admigration.cmd

225 lines
7.8 KiB
Batchfile

@REM -----------------------------------------------------------------
@REM
@REM ADMigration.cmd - v-PaulT
@REM Generates a new ADMigration.msi based on the compiled binaries
@REM
@REM Copyright (c) Microsoft Corporation. All rights reserved.
@REM
@REM -----------------------------------------------------------------
@if defined _CPCMAGIC goto CPCBegin
@perl -x "%~f0" %*
@goto :EOF
#!perl
use strict;
use lib $ENV{RAZZLETOOLPATH} . "\\PostBuildScripts";
use lib $ENV{RAZZLETOOLPATH};
use PbuildEnv;
use ParseArgs;
sub Usage { print<<USAGE; exit(1) }
ADMigration [-l <language>]
Generates a new ADMigration.msi and PwdMig.msi based on the compiled binaries
USAGE
parseargs('?' => \&Usage);
# *** TEMPLATE CODE ***
$ENV{"_CPCMAGIC"}++;exit(system($0)>>8);
__END__
@:CPCBegin
@set _CPCMAGIC=
@if not defined DEBUG echo off
@REM *** CMD SCRIPT BELOW ***
REM admigration.msi is not applicable to languages with no server products.
perl %RazzleToolPath%\cksku.pm -t:bla -l:%lang%
if %errorlevel% EQU 0 goto :ValidSKU
perl %RazzleToolPath%\cksku.pm -t:sbs -l:%lang%
if %errorlevel% EQU 0 goto :ValidSKU
perl %RazzleToolPath%\cksku.pm -t:srv -l:%lang%
if %errorlevel% EQU 0 goto :ValidSKU
perl %RazzleToolPath%\cksku.pm -t:ads -l:%lang%
if %errorlevel% EQU 0 goto :ValidSKU
perl %RazzleToolPath%\cksku.pm -t:dtc -l:%lang%
if %errorlevel% EQU 0 goto :ValidSKU
call logmsg.cmd "admigration.cmd: no server products for %lang%; nothing to do."
goto :EOF
:ValidSKU
REM ADDED BY v-pault
REM Set the location of the tools I will use
set TOOLPATH=%RazzleToolPath%
REM ADDED BY v-pault
REM Make directories
set ADMTDIR=%_NTPostBld%\admt
set ADMTFILESINMSIDIR=%_NTPostBld%\admt\filesinmsi
set SUPPORTDIR=%_NTPostBld%\admt\release
if NOT EXIST %SUPPORTDIR% md %SUPPORTDIR%
set PWDMIGDIR=%_NTPostBld%\admt\release\PwdMig
if NOT EXIST %PWDMIGDIR% md %PWDMIGDIR%
REM ADDED BY xyuan
REM Copy files to be included in msi from other folders to admt\filesinmsi folder
call logmsg.cmd "Copying files into %ADMTFILESINMSIDIR%"
if exist %ADMTFILESINMSIDIR% (
call ExecuteCmd.cmd "rd /q /s %ADMTFILESINMSIDIR%"
if errorlevel 1 (
call errmsg.cmd "Failed to delete %ADMTFILESINMSIDIR%."
goto end
)
)
call ExecuteCmd.cmd "md %ADMTFILESINMSIDIR%"
if errorlevel 1 (
call errmsg.cmd "Failed to create %ADMTFILESINMSIDIR%."
goto end
)
REM Copy executables
for %%i in (admt admtagnt dctagentservice mcsdispatcher admtagntnt4 dctagentservicent4 ) do (
call ExecuteCmd "copy %_NTPostBld%\%%i.exe %ADMTFILESINMSIDIR%\%%i.exe"
if errorlevel 1 (
call errmsg.cmd "Failed to copy %%i.exe from %_NTPostBld% to %ADMTFILESINMSIDIR%."
goto end
)
)
REM Copy dlls
for %%i in (AddToGroup ADMTScript DBManager DisableTargetAccount DomMigSI GetRids McsADsClassProp McsDctWorkerObjects McsDmMsg McsDmRes McsMigrationDriver MCSNetObjectEnum McsPISag McsVarSetMin MoveObj ScmMigr SetTargetPassword TrustMgr UpdateDB UpdateMOT UPNUpdt wizards MsPwdMig McsDctWorkerObjectsNT4 McsDmMsgNT4 McsDmResNT4 McsPISagNT4 McsVarSetMinNT4 pwmig mschapp PwMigNT4 ) do (
call ExecuteCmd "copy %_NTPostBld%\%%i.dll %ADMTFILESINMSIDIR%\%%i.dll"
if errorlevel 1 (
call errmsg.cmd "Failed to copy %%i.dll from %_NTPostBld% to %ADMTFILESINMSIDIR%."
goto end
)
)
REM Copy misc files
for %%i in (DomainMig.chm ADMTReadMe.doc TemplateScript.vbs Gothic.ttf Gothicb.ttf Gothicbi.ttf Gothici.ttf Migrator.msc Protar.mdb msvcp60.dll) do (
call ExecuteCmd "copy %ADMTDIR%\%%i %ADMTFILESINMSIDIR%\%%i"
if errorlevel 1 (
call errmsg.cmd "Failed to copy %%i from %ADMTDIR% to %ADMTFILESINMSIDIR%."
goto end
)
)
REM ADDED BY xyuan
REM Create admt.cat for all files that will be included in admigration.msi and pwdmig.msi files
call logmsg.cmd /t "Creating admt.cat ..."
pushd %ADMTFILESINMSIDIR%
call ExecuteCmd.cmd "%SDXROOT%\tools\deltacat.cmd %ADMTFILESINMSIDIR%"
popd
if errorlevel 1 (
call errmsg.cmd "Failed to create delta.cat."
goto end
)
call ExecuteCmd.cmd "copy %ADMTFILESINMSIDIR%\delta.cat %_NTPostBld%\admt.cat"
if errorlevel 1 (
call errmsg.cmd "Failed to copy delta.cat from %ADMTFILESINMSIDIR% to %_NTPostBld% as admt.cat."
goto end
)
REM ADMIGRATION.MSI
REM Copy admigration.msi from admt folder to admt\release folder
call ExecuteCmd.cmd "copy %ADMTDIR%\ADMigration.msi %SUPPORTDIR%\ADMigration.msi"
REM ADDED BY v-pault
REM Removing any old cab file from the static msi file
call logmsg.cmd /t "Removing any old cab file from the static ADMigration msi file"
REM Make sure the file can be updated...
attrib -r %SUPPORTDIR%\ADMigration.msi
REM call ExecuteCmd.cmd "cscript.exe %TOOLPATH%\WiStream.vbs %SUPPORTDIR%\ADMigration.msi /D Cabs.w1.cab"
call cscript.exe %TOOLPATH%\WiStream.vbs %SUPPORTDIR%\ADMigration.msi /D Cabs.w1.cab
if errorlevel 1 (
call errmsg.cmd "WiStream.vbs failed to remove current CAB from ADMigration.msi."
goto end
)
call cscript.exe %TOOLPATH%\WiStream.vbs %SUPPORTDIR%\ADMigration.msi /D Cabs.w1.CAB
REM ADDED BY v-pault
REM Placing the new binaries in a new cab file, and placing that cab in the msi file...
call logmsg.cmd /t "Placing the new binaries in a new cab file, and placing that cab in ADMigration.msi..."
call ExecuteCmd.cmd "cscript.exe %TOOLPATH%\WiMakADMTCab.vbs %SUPPORTDIR%\ADMigration.msi Cabs.w1 %ADMTFILESINMSIDIR% /c /u /e"
if errorlevel 1 (
call errmsg.cmd "WiMakCab.vbs failed to make new CAB with built binaries for ADMigration.msi."
goto end
)
REM ADDED BY v-pault
REM Fixing the file size and version info for the new ADMigration.msi...
call logmsg.cmd /t "Fixing the file size and version info for the new ADMigration.msi..."
call ExecuteCmd.cmd "msifiler -d %SUPPORTDIR%\ADMigration.msi -s %ADMTFILESINMSIDIR%\"
if errorlevel 1 (
call errmsg.cmd "Msifiler failed to fix file size and version info."
goto end
)
REM PWDMIG.MSI
REM Copy pwdmig.msi from admt folder to admt\release\pwdmig folder
call logmsg.cmd /t "Copying pwdmig.msi from %ADMTDIR% to %PWDMIGDIR%"
call ExecuteCmd.cmd "copy %ADMTDIR%\PwdMig.msi %PWDMIGDIR%\PwdMig.msi"
if errorlevel 1 (
call errmsg.cmd "Failed to copy pwdmig.msi from %ADMTDIR% to %PWDMIGDIR%."
goto end
)
REM ADDED BY v-pault
REM Removing any old cab file from the static PwdMig msi file
call logmsg.cmd /t "Removing any old cab file from the static PwdMig msi file"
call cscript.exe %TOOLPATH%\WiStream.vbs %PWDMIGDIR%\PwdMig.msi /D Cabs.w1.cab
call cscript.exe %TOOLPATH%\WiStream.vbs %PWDMIGDIR%\PwdMig.msi /D Cabs.w1.CAB
REM ADDED BY v-pault
REM Placing the new binaries in a new cab file, and placing that cab in PwdMig.msi...
call logmsg.cmd /t "Placing the new binaries in a new cab file, and placing that cab in PwdMig.msi..."
call ExecuteCmd.cmd "cscript.exe %TOOLPATH%\WiMakADMTCab.vbs %PWDMIGDIR%\PwdMig.msi Cabs.w1 %ADMTFILESINMSIDIR% /c /u /e"
if errorlevel 1 (
call errmsg.cmd "WiMakCab.vbs failed to make new CAB with built binaries for PwdMig.msi."
goto end
)
REM ADDED BY v-pault
REM Fixing the file size and version info for the new PwdMig.msi...
call logmsg.cmd /t "Fixing the file size and version info for the new PwdMig.msi..."
call ExecuteCmd.cmd "msifiler -d %PWDMIGDIR%\PwdMig.msi -s %ADMTFILESINMSIDIR%\"
if errorlevel 1 (
call errmsg.cmd "Msifiler failed to fix file size and version info."
goto end
)
REM ADDED BY v-pault
REM Copying some other files to %SUPPORTDIR%
call logmsg.cmd /t "Copying some other files to %SUPPORTDIR%"
call ExecuteCmd.cmd "copy %ADMTFILESINMSIDIR%\ADMTReadme.doc %SUPPORTDIR%\ReadMe.doc"
call ExecuteCmd.cmd "copy %ADMTDIR%\cpysym.cmd %SUPPORTDIR%\cpysym.cmd"
call ExecuteCmd.cmd "copy %ADMTDIR%\PwdMig.exe %PWDMIGDIR%\PwdMig.exe"
call ExecuteCmd.cmd "copy %ADMTDIR%\PwdMig.ini %PWDMIGDIR%\PwdMig.ini"
call ExecuteCmd.cmd "copy %ADMTDIR%\instmsiw.exe %PWDMIGDIR%\instmsiw.exe"
goto end
:end
REM remove temporary files created
if exist cabs*.* del cabs*.*
call ExecuteCmd.cmd "rd /q /s %ADMTFILESINMSIDIR%"