Link to home
Start Free TrialLog in
Avatar of syseng007

asked on

VB Script Experts...Need Help

I need to run the following script to query predominantly 2003 and minimal 2008 to query a service's state using local administrator ID SAAdmin. The reason why I need to use local administrator credentials it's because the servers reside in different domains. PLease help! Thank you.

'* File:      ServiceState.vbs
'* Main Functions:  Extracts a list of computer names or IP addresses from a text  
'*                file and sends a PING to each to determine UP/DOWN state.
'*                Writes results to comma delimited text file named
'*       listing host names or
'*                IP addresses and the status of each specified service.
'* Required file: compname.txt containing a single column of host names or IP
'*                address with no white space in the same directory as this script.
Dim sDate
Dim strTime
Dim strDate
Dim strState
Dim strDataIn             'Input list from text file
Dim aryData                  'Array to hold input stream
Dim iCounter             'Iterative loop counter
dim strOUT                  'Output file
Dim oWshShell            'Windows shell script
Dim objFSO                  'Scripting File System
Dim objFile                  'Open text file
Dim strFilePath            'Path to current directory
Dim strServiceName      'Name of service to be checked
Set oWshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFilePath = objFSO.GetAbsolutePathName(".")
'Get Service Name
strServiceName = InputBox("Enter name of service...", "Service name input")
'Read file into a variable
strDataIn = f_r(strFilePath & "\compname.txt")
'Split into an array
aryData = Split(strDataIn,vbCrLf)
oWshShell.Popup Ubound(aryData) + 1 & " Hosts/Addresses in list." & Chr(13) & "Scan is underway.",2,"Notice",64
sDate = Date
strTime = Now
StrDate = DatePart("m",sDate) & "." & DatePart("d",sDate) & "." & Hour(strTime) & "." & Minute(strTime)
set strOUT = objFSO.CreateTextFile(strFilePath & "\SERVICEResults." & strDate & ".log")
strOUT.WriteLine strServiceName & " query results:"
strOUT.WriteBlankLines (2)
For iCounter = 0 to Ubound(aryData)
 aryData(iCounter) = Trim(aryData(iCounter)) ' clean "white space"
 if GetService(aryData(iCounter), strServiceName) then
      strOUT.Write aryData(iCounter) & ",Installed : " & strState & vbcrlf
      strOUT.Write aryData(iCounter) & ",Service not present" & vbcrlf
 end if
set strOUT = nothing
set objFSO = nothing
oWshShell.Popup "Scan processing complete.",5,"Notice",64
'* Function f_r(FilePath)
'*      Given the path to a file,  this function will return entire contents
Function f_r(FilePath)
 Dim FSO
 set FSO = CreateObject("Scripting.FileSystemObject")
  f_r = FSO.OpenTextFile(FilePath,1).ReadAll
End Function
'* Function GetService(strComputer)
'*      Returns True or False based on the status of the specified Service
Function GetService(strComputer, strSrvce)
On Error Resume Next
Dim objWMIService
Dim colListOfServices
Dim objService
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
    ("Select DisplayName,State from Win32_Service Where Name = '" & strSrvce & "'")
If Err.Number <> 0 Then
  GetService = "False"
  For Each objService in colListOfServices
   GetService = "True"
   strState = objService.State
End If
End Function
Avatar of kevinhigg

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of RobSampson
Flag of Australia image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial