Dim objFSO
Dim objLogFile
Dim objSL 'File containing the server list
Dim objWMIService
Dim colListOfServices
dim ts
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSO.CreateTextFile("service_list.txt", True)
Set objSL = objFSO.GetFile("servers.txt")
Set ts = objSL.OpenAsTextStream(1)
'Use the pipe character [ | ] as the delimiter because some of the
'descriptions include commas
objLogFile.Write _
("System Name|Service Name|Service Type|Service State|Caption|" _
& "Description|Display Name|Executable Path|Service Started|" _
& "Start Mode|Account Name")
objLogFile.Writeline
Do While Not ts.AtEndOfStream
strComputer = ts.Readline
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
("Select * from Win32_Service")
For Each objService in colListOfServices
objLogFile.Write objService.SystemName & "|"
objLogFile.Write objService.Name & "|"
objLogFile.Write objService.ServiceType & "|"
objLogFile.Write objService.State & "|"
objLogFile.Write objService.Caption & "|"
objLogFile.Write objService.Description & "|"
objLogFile.Write objService.DisplayName & "|"
objLogFile.Write objService.PathName & "|"
objLogFile.Write objService.Started & "|"
objLogFile.Write objService.StartMode & "|"
objLogFile.Write objService.StartName & "|"
objLogFile.writeline
Next
Loop
ts.Close
objLogFile.Close
Set objFSO = Nothing
Set objLogFile = Nothing
Set objWMIService = Nothing
Set colListOfServices = Nothing
Set ts = Nothing
Set strComputer = Nothing
Wscript.Echo "Finished"