Sub StopService(strServiceName) Dim blnDependencies, objWMI, objService, colServices On Error Resume Next Err.Clear Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set colServices = objWMI.ExecQuery("Associators of {Win32_Service.Name='" & strServiceName & "'} Where AssocClass=Win32_DependentService " & "Role=Antecedent" ) blnDependencies = False For Each objService in colServices blnDependencies = True objService.StopService Next If blnDependencies = True Then Wscript.Sleep 20000 End If Set colServices = objWMI.ExecQuery("Select * from Win32_Service where Name='" & strServiceName & "'") For Each objService in colServices objService.StopService() Next Set objWMI = Nothing 'If WMI fails, try running NET.EXE to stop service If Err.Number <> 0 Then CreateObject("WScript.Shell").Run "net.exe stop " & strServiceName, 0, False End If End Sub