Submitted By: Matthew Jones
Defragments the Exchange information store.
@Echo off :: ExMaint Version 1.2 :: Matthew Jones - :: Script must include Exchagne Server name as part of parameter {ie: Scriptname.cmd Servername} :: :: Purpose: Take Exchange Information Store off-line - Backup EDB and STM file. Perform Defrag. Reboot Server :: :: Why: So I can get some sleep while the Exchange Store does a poor mans defrag. :: :: Assumpsion 1: The Exchange program is installed to c:\program files\exchsrvr {for eseutil access} :: Assumption 2: You have enough space in the backup path to accomodate the store backup. :: Assumption 3: You have the shutdown utility in a common path {i.e: winnt\system32}. CLS :: What directory do you want the report to generate in? set ReportPath=c:\scripts\reports\ if not exist %reportpath% mkdir c:\scripts\reports set ReportName=%reportpath%%1.txt :: location to back up EDB and STM files set backuppath=d:\exchbup\ :: Create backup path if it does not exist if not exist %backuppath% mkdir %backuppath% :: location where Exchange Store DB resides set datalocation=d:\InfoStore\ :: Exchange Store Name set dataname=priv1.edb :: location where Exchange Store STM resides set streamlocation=d:\InfoStore\ :: Exchange STM filename set streamname=priv1.stm date /t > %ReportName% time /t >> %ReportName% echo Server Name is : %1 >> %ReportName% echo Report Path : %reportpath% >> %ReportName% echo Report Name : %reportname% >> %ReportName% echo ---------------- >> %ReportName% echo Backup Path : %backuppath% >> %ReportName% echo Data Location : %datalocation% >> %ReportName% echo Data Name : %dataname% >> %ReportName% echo Stream Location: %streamlocation% >> %ReportName% echo Stream Name : %streamname% >> %ReportName% echo Server Name is : %1 echo Report Path : %reportpath% echo Report Name : %reportname% echo ---------------- echo Backup Path : %backuppath% echo Data Location : %datalocation% echo Data Name : %dataname% echo Stream Location: %streamlocation% echo Stream Name : %streamname% if %1 == "" goto :errorfound set ExchServer=%1 echo The Server Name is: %ExchServer% :StartJob Echo Stopping the Exchange Store on %ExchServer% Echo Stopping the Exchange Store on %ExchServer% >> %ReportName% net stop "Microsoft Exchange Information Store" >> %ReportName% Echo Exchange Store Stopped Echo Exchange Store Stopped >> %ReportName% date /t > %ReportName% time /t >> %ReportName% Echo Delete Old Copy - Backup Production Info Store if exist %BackupPath%%dataname% del %BackupPath%%dataname% if exist %BackupPath%%streamname% del %BackupPath%%streamname% Echo Delete Old Copy - Backup Production Info Store >> %ReportName% Echo Copy STM File to %backuppath%. Copy %streamlocation%%streamname% %backuppath% Echo Copy of STM File Completed. >> %ReportName% Echo Copy of STM File Completed. Echo Copy %dataname% to %backuppath%. >> %ReportName% Echo Copy %dataname% to %backuppath%. Copy %datalocation%%dataname% %backuppath% Echo Copy of STM File Completed. >> %ReportName% Echo Copy of STM File Completed. if errorlevel = 0 goto :STARTESEUTIL :failcopy Echo The Copy process failed - Process aborted! Echo The Copy process failed - Process aborted! >> %ReportName% goto :ENDMAINT :STARTESEUTIL Echo Starting ESEUTIL Echo Starting ESEUTIL>> %ReportName% date /t >> %ReportName% time /t >> %ReportName% "c:\program files\exchsrvr\bin\eseutil.exe" /d %datalocation%%dataname% Echo ESEUTIL Defragmentation Completed >> %ReportName% Echo ESEUTIL Defragmentation Completed date /t >> %ReportName% time /t >> %ReportName% :StartServices Echo Starting Microsoft Exchange Information Store Echo Starting Microsoft Exchange Information Store >> %ReportName% net start "Microsoft Exchange Information Store" >> %ReportName% date /t >> %ReportName% time /t >> %ReportName% echo Rebooting Server >> %ReportName% echo Rebooting Server shutdown /l /r /t:20 goto :ENDMAINT :errorfound Echo You did not set a Server name as a parameter of the script. Echo Please use the Exchange Servername as a parameter in the script. :ENDMAINT Echo Script Ended >> %ReportName% date /t >> %ReportName% time /t >> %ReportName% :: notepad %ReportName%
@Echo off :: ExMaint Version 1.2 :: Matthew Jones - :: Script must include Exchagne Server name as part of parameter {ie: Scriptname.cmd Servername} :: :: Purpose: Take Exchange Information Store off-line - Backup EDB and STM file. Perform Defrag. Reboot Server :: :: Why: So I can get some sleep while the Exchange Store does a poor mans defrag. :: :: Assumpsion 1: The Exchange program is installed to c:\program files\exchsrvr {for eseutil access} :: Assumption 2: You have enough space in the backup path to accomodate the store backup. :: Assumption 3: You have the shutdown utility in a common path {i.e: winnt\system32}. CLS :: What directory do you want the report to generate in? set ReportPath=c:\scripts\reports\ if not exist %reportpath% mkdir c:\scripts\reports set ReportName=%reportpath%%1.txt :: location to back up EDB and STM files set backuppath=d:\exchbup\ :: Create backup path if it does not exist if not exist %backuppath% mkdir %backuppath% :: location where Exchange Store DB resides set datalocation=d:\InfoStore\ :: Exchange Store Name set dataname=priv1.edb :: location where Exchange Store STM resides set streamlocation=d:\InfoStore\ :: Exchange STM filename set streamname=priv1.stm date /t > %ReportName% time /t >> %ReportName% echo Server Name is : %1 >> %ReportName% echo Report Path : %reportpath% >> %ReportName% echo Report Name : %reportname% >> %ReportName% echo ---------------- >> %ReportName% echo Backup Path : %backuppath% >> %ReportName% echo Data Location : %datalocation% >> %ReportName% echo Data Name : %dataname% >> %ReportName% echo Stream Location: %streamlocation% >> %ReportName% echo Stream Name : %streamname% >> %ReportName% echo Server Name is : %1 echo Report Path : %reportpath% echo Report Name : %reportname% echo ---------------- echo Backup Path : %backuppath% echo Data Location : %datalocation% echo Data Name : %dataname% echo Stream Location: %streamlocation% echo Stream Name : %streamname% if %1 == "" goto :errorfound set ExchServer=%1 echo The Server Name is: %ExchServer% :StartJob Echo Stopping the Exchange Store on %ExchServer% Echo Stopping the Exchange Store on %ExchServer% >> %ReportName% net stop "Microsoft Exchange Information Store" >> %ReportName% Echo Exchange Store Stopped Echo Exchange Store Stopped >> %ReportName% date /t > %ReportName% time /t >> %ReportName% Echo Delete Old Copy - Backup Production Info Store if exist %BackupPath%%dataname% del %BackupPath%%dataname% if exist %BackupPath%%streamname% del %BackupPath%%streamname% Echo Delete Old Copy - Backup Production Info Store >> %ReportName% Echo Copy STM File to %backuppath%. Copy %streamlocation%%streamname% %backuppath% Echo Copy of STM File Completed. >> %ReportName% Echo Copy of STM File Completed. Echo Copy %dataname% to %backuppath%. >> %ReportName% Echo Copy %dataname% to %backuppath%. Copy %datalocation%%dataname% %backuppath% Echo Copy of STM File Completed. >> %ReportName% Echo Copy of STM File Completed. if errorlevel = 0 goto :STARTESEUTIL :failcopy Echo The Copy process failed - Process aborted! Echo The Copy process failed - Process aborted! >> %ReportName% goto :ENDMAINT :STARTESEUTIL Echo Starting ESEUTIL Echo Starting ESEUTIL>> %ReportName% date /t >> %ReportName% time /t >> %ReportName% "c:\program files\exchsrvr\bin\eseutil.exe" /d %datalocation%%dataname% Echo ESEUTIL Defragmentation Completed >> %ReportName% Echo ESEUTIL Defragmentation Completed date /t >> %ReportName% time /t >> %ReportName% :StartServices Echo Starting Microsoft Exchange Information Store Echo Starting Microsoft Exchange Information Store >> %ReportName% net start "Microsoft Exchange Information Store" >> %ReportName% date /t >> %ReportName% time /t >> %ReportName% echo Rebooting Server >> %ReportName% echo Rebooting Server shutdown /l /r /t:20 goto :ENDMAINT :errorfound Echo You did not set a Server name as a parameter of the script. Echo Please use the Exchange Servername as a parameter in the script. :ENDMAINT Echo Script Ended >> %ReportName% date /t >> %ReportName% time /t >> %ReportName% :: notepad %ReportName%