Chapter 6: Computer and Service Management Code
Querying the Computer Owner Using VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer= GetObject("WinNT://" & ComputerDomain&"/" & ComputerName & ",computer") Response.Write Computer.Owner
Querying the Registered Organization Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer= GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Response.Write Computer.Division
Querying the Computer Operating System Using VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer= GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Response.Write Computer.OperatingSystem
Querying the Computer Operating System Version Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer= GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Response.Write Computer.OperatingSystemVersion
Querying the Computer Processor Type Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer= GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Response.Write Computer.Processor
Querying the Installed HAL on Windows NT Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer= GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Response.Write Computer.ProcessorCoun
Enumerating Installed Services on a Specific Computer Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Computer.Filter = Array("service") For Each Service In Computer Response.Write Service.Name & "<BR>" Next
Querying Service Dependencies Using a VBScript Active Server Page
On Error Resume Next Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) If IsArray(Service.Dependencies) = True Then Dim Entry For Each Entry In Service.Dependencies Response.Write Entry & "<BR>" Next Else Response.Write Service.Dependencies & "<BR>" End If
Setting a New Service Dependency Using a VBScript Active Server Page
On Error Resume Next Dim Computer Dim Service Dim NewElement() Dim i Dim EmptyArray Dim DependencyAlreadyExists Dim ComputerDomain Dim TargetComputer Dim TargetService Dim NewDependency TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" TargetComputer = "Target_Computer_Name" NewDependency = "mssqlserver" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & TargetComputer & ",computer") Set Service = Computer.GetObject("service", TargetService) If IsArray(Service.Dependencies) = True Then Dim Entry For Each Entry In Service.Dependencies i = UBound(NewElement) + 1 ReDim Preserve NewElement(i) NewElement(i) = Entry If Entry = "" Then EmptyArray = 1 If Entry = NewDependency Then DependencyAlreadyExists = 1 Next If EmptyArray = 1 Then Service.Dependencies = Array(NewDependency) Service.SetInfo Else If DependencyAlreadyExists <> 1 Then i = UBound(NewElement) + 1 ReDim Preserve NewElement(i) NewElement(i) = NewDependency Service.Dependencies = NewElement Service.SetInfo End If End If Else If Service.Dependencies <> NewDependency Then Service.Dependencies = Array(Service.Dependencies, NewDependency) Service.SetInfo End If End If
Querying Service Display Name Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) Response.Write Service.DisplayName
Determining the Programmatic Name of a Service from the Display Name Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim StringToFind Dim Service ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" StringToFind = "Display_Name_To_Find" Set Computer = GetObject("WinNT://" & ComputerDomain &"/" & ComputerName& ",computer") Computer.Filter = Array("service") For Each Service In Computer If InStr(Service.DisplayName, StringToFind) <> 0 Then Response.Write Service.Name; " = "; Service.DisplayName&"<BR>" End If Next
Setting a New Service Display Name Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService Dim NewDisplayName TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" NewDisplayName = "New_Service_Display_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/"& ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) Service.DisplayName = NewDisplayName Service.SetInfo
Querying Host Computer Property Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) Response.Write Service.HostComputer
Querying Service Executable Path Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) Response.Write Service.Path
Setting New Service Executable Path Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService Dim NewServicePath TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" NewServicePath = "New_Path_To_Executable" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) Service.Path = NewServicePath Service.SetInfo
Querying Service Account Name Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) Response.Write Service.ServiceAccountName
Querying Service Start Type Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) Select Case Service.StartType Case 0 Response.Write "BOOT" Case 1 Response.Write "SYSTEM" Case 2 Response.Write "AUTOMATIC" Case 3 Response.Write "MANUAL" Case 4 Response.Write "DISABLED" End Select
Setting Service Start Type Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) 'Use 4 to disable the service, 3 for Manual startup or 2 to AutoStart the service Service.StartType = 4 Service.SetInfo
Enumerating Service Status Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim ServiceStatus ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Computer.Filter = Array("service") For Each Service In Computer Select Case Service.Status Case 1 ServiceStatus = "Stopped" Case 2 ServiceStatus = "Start Pending" Case 3 ServiceStatus = "Stop Pending" Case 4 ServiceStatus = "Running" Case 5 ServiceStatus = "Continue_Pending" Case 6 ServiceStatus = "Pause_Pending" Case 7 ServiceStatus = "Paused" Case 8 ServiceStatus = "Error" End Select Response.Write Service.Name & ServiceStatus & "<BR>" Next
Starting a Service Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) If Service.Status = 1 Then Service.Start Response.Write "The "&Service.Name&" service has been started."&"<BR>" Else If Service.Status = 4 Then Response.Write "The "&Service.Name&" service is already started."& "<BR>" Else Response.Write "The "&Service.Name&" service could not be started."& "<BR>" End If End If
Stopping a Service Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) If Service.Status = 4 Then Service.Stop Response.Write "The "&Service.Name&" service has been stopped."&"<BR>" Else If Service.Status = 1 then Response.Write "The "&Service.Name&" service is already stopped."& "<BR>" Else Response.Write "The "&Service.Name&" service could not be stopped."& "<BR>" End If End If
Pausing a Service Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) If Service.Status = 4 Then Service.Pause Response.Write "The "&Service.Name&" service has been paused."&"<BR>" Else If Service.Status = 7 Then Response.Write "The "&Service.Name&" service is already paused."& "<BR>" Else Response.Write "The "&Service.Name&" service could not be paused."& "<BR>" End If End If
Continuing a Paused Service Using a VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) If Service.Status = 7 Then Service.Continue Response.Write "The " & Service.Name & " service has been unpaused."&"<BR>" Else If Service.Status = 4 Then Response.Write "The " & Service.Name & " service is already running."& "<BR>" End If End If
Setting New Service Password Using VBScript Active Server Page
Dim Computer Dim ComputerName Dim ComputerDomain Dim Service Dim TargetService Dim NewPassword TargetService = "Target_Service_Name" ComputerDomain = "Domain_To_Manage" ComputerName = "Target_Computer_Name" NewPassword = "New_Password" Set Computer = GetObject("WinNT://" & ComputerDomain & "/" & ComputerName & ",computer") Set Service = Computer.GetObject("service", TargetService) Service.SetPassword(NewPassword) Service.SetInfo