'Configure the value below to what suits your organisation the best - the default is 20 seconds. Const ServiceWaitTimeOut = 20000 Const ArbitWaitTime = 15000 CheckServices Wscript.Sleep ArbitWaitTime StartServices Sub ConfigureServices 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( , , , , "Manual") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange MTA Stacks'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Manual") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange Routing Engine'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Manual") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'Microsoft Exchange System Attendant'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Manual") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'IIS Admin Service'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Manual") Next Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName = 'World Wide Web Publishing Service'") For Each objService in colServiceList errReturnCode = objService.Change( , , , , "Manual") Next Set objWMIService = Nothing Set colServiceList = Nothing End Sub Sub CheckServices strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colServiceList = objWMIService.ExecQuery ("Select StartMode from Win32_Service where DisplayName = 'Microsoft Exchange Information Store'") For Each objService in colServiceList strMode = objService.StartMode If StrMode = "Auto" Then Call ConfigureServices End If Next Set colServiceList = objWMIService.ExecQuery ("Select StartMode from Win32_Service where DisplayName = 'Microsoft Exchange MTA Stacks'") For Each objService in colServiceList strMode = objService.StartMode If StrMode = "Auto" Then Call ConfigureServices End if Next Set colServiceList = objWMIService.ExecQuery ("Select StartMode from Win32_Service where DisplayName = 'Microsoft Exchange Routing Engine'") For Each objService in colServiceList strMode = objService.StartMode If StrMode = "Auto" Then Call ConfigureServices End if Next Set colServiceList = objWMIService.ExecQuery ("Select StartMode from Win32_Service where DisplayName = 'Microsoft Exchange System Attendant'") For Each objService in colServiceList strMode = objService.StartMode If StrMode = "Auto" Then Call ConfigureServices End if Next Set colServiceList = objWMIService.ExecQuery ("Select StartMode from Win32_Service where DisplayName = 'IIS Admin Service'") For Each objService in colServiceList strMode = objService.StartMode If StrMode = "Auto" Then Call ConfigureServices End if Next Set colServiceList = objWMIService.ExecQuery ("Select StartMode from Win32_Service where DisplayName = 'World Wide Web Publishing Service'") For Each objService in colServiceList strMode = objService.StartMode If StrMode = "Auto" Then Call ConfigureServices End if Next Set objWMIService = Nothing Set colServiceList = Nothing Set strMode = 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 ='IIS Admin Service'") For each objService in colServiceList errReturn = objService.StartService() Next Wscript.Sleep ServiceWaitTimeOut Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where DisplayName ='World Wide Web Publishing Service'") For each objService in colServiceList errReturn = objService.StartService() 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.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 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 objWMIService = Nothing Set colServiceList = Nothing End Sub