'Configure the value below to what suits your organisation the best - the default is 20 seconds. Const ServiceWaitTimeOut = 20000 On error resume next strOp = Wscript.Arguments.Item(0) If err <> 0 Then WScript.Echo "The command line options that you have used are not correct - ExchangePrep or PrepCom" err.clear Wscript.Quit End If If strOp = "ExchangePrep" Then Call DisableServices End if If strOp = "PrepCom" Then Call EnableServices End if Wscript.Echo "All Services have been configured please continue with the domain upgrade" Sub EnableServices strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange Information Store'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Automatic") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange Management'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Automatic") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange MTA Stacks'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Automatic") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange Routing Engine'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Automatic") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange System Attendant'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Automatic") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'IIS Admin Service'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Automatic") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'World Wide Web Publishing Service'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Automatic") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Simple Mail Transport Protocol (SMTP)'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Automatic") Next Set objWMIService = Nothing Set colServiceList = Nothing Call StartServices End Sub Sub DisableServices strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange Information Store'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Disabled") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange Management'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Disabled") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange MTA Stacks'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Disabled") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange Routing Engine'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Disabled") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange System Attendant'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Disabled") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'IIS Admin Service'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Disabled") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'World Wide Web Publishing Service'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Disabled") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Simple Mail Transport Protocol (SMTP)'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Disabled") Next Set objWMIService = Nothing Set colServiceList = Nothing Call StopServices End Sub Sub StopServices strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='Microsoft Exchange Information Store'") For each objService in colServiceList errReturn = objService.StopService() Next Wscript.Sleep ServiceWaitTimeOut Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='Microsoft Exchange Management'") For each objService in colServiceList errReturn = objService.StopService() Next Wscript.Sleep ServiceWaitTimeOut Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='Microsoft Exchange MTA Stacks'") For each objService in colServiceList errReturn = objService.StopService() Next Set colServices = objWMIService.ExecQuery ("SELECT * FROM win32_Service WHERE DisplayName = 'Microsoft Exchange Routing Engine'") For Each objService in colServices errReturnCode = objService.StopService() Next Wscript.Sleep ServiceWaitTimeOut Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='Microsoft Exchange System Attendant'") For each objService in colServiceList errReturn = objService.StopService() Next Wscript.Sleep ServiceWaitTimeOut Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='IIS Admin Service'") For each objService in colServiceList errReturn = objService.StopService() Next Set objWMIService = Nothing Set colServiceList = Nothing End Sub Sub StartServices strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='Microsoft Exchange System Attendant'") For each objService in colServiceList errReturn = objService.StartService() Next Wscript.Sleep ServiceWaitTimeOut Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='Microsoft Exchange Information Store'") For each objService in colServiceList errReturn = objService.StartService() Next Wscript.Sleep ServiceWaitTimeOut Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='Microsoft Exchange Management'") For each objService in colServiceList errReturn = objService.StartService() Next Wscript.Sleep ServiceWaitTimeOut Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='Microsoft Exchange MTA Stacks'") For each objService in colServiceList errReturn = objService.StartService() Next Set colServices = objWMIService.ExecQuery ("SELECT * FROM win32_Service WHERE DisplayName = 'Microsoft Exchange Routing Engine'") For Each objService in colServices errReturnCode = objService.StartService() Next Set colServices = objWMIService.ExecQuery ("SELECT * FROM win32_Service WHERE DisplayName = 'IIS Admin Service'") For Each objService in colServices errReturnCode = objService.StartService() Next Wscript.Sleep ServiceWaitTimeOut Set colServices = objWMIService.ExecQuery ("SELECT * FROM win32_Service WHERE DisplayName = 'World Wide Web Publishing Service'") For Each objService in colServices errReturnCode = objService.StartService() Next Set colServices = objWMIService.ExecQuery ("SELECT * FROM win32_Service WHERE DisplayName = 'Simple Mail Transport Protocol (SMTP)'") For Each objService in colServices errReturnCode = objService.StartService() Next Set objWMIService = Nothing Set colServiceList = Nothing End Sub