' Input is list of workstations/servers and output is Servername/localadministrators group / members of the groups ' / description of each member.
Option Explicit
Const LogFile = "LocalAdmins1.log"
Const resultFile = "C:\scripts\security project\LocalAdministratorsMembership1.csv"
Const inputFile = "C:\scripts\security project\HADCServers.txt"
Const Faillist = "C:\scripts\security project\Faillist1.csv"
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim shl
Set shl = WScript.CreateObject("WScript.Shell")
Dim fil
Set fil = fso.OpenTextFile(inputFile)
Dim results
Dim Fail
Set results = fso.CreateTextFile(resultFile, True)
Set Fail = fso.CreateTextFile(Faillist, True)
WriteToLog "Beginning Pass of " & inputFile & " at " & Now()
'WScript.Echo "Beginning Pass of " & inputFile & " at " & Now()
On Error Resume Next
Dim grp
Dim line
Dim exec
Dim pingResults
Dim member
While Not fil.AtEndOfStream
line = fil.ReadLine
Set exec = shl.Exec("ping -n 2 -w 1000 " & line)
pingResults = LCase(exec.StdOut.ReadAll)
If InStr(pingResults, "reply from") Then
WriteToLog line & " responded to ping"
'WScript.Echo line & " responded to ping"
On Error Resume Next
Set grp = GetObject("WinNT://" & line & "/Administrators")
If Err.Number <> 0 Then
Fail.WriteLine line
Else
'WScript.Echo line & ", Administrators"
results.WriteLine line & ",Administrators,"
For Each member In grp.Members
If (member.Class = "Group") Then
results.WriteLine ",," & member.Name & ",," & member.Description
ElseIf (member.Class = "User") Then
'WScript.Echo "Administrators: " & member.Name
WriteToLog line & ": Administrators - " & member.Name
results.WriteLine ",," & member.Name & ",," & member.Description
End If
Next
End If
Else
WriteToLog line & " did not respond to ping"
'WScript.Echo line & " did not respond to ping"
End If
Wend
results.Close
Sub WriteToLog(LogData)
On Error Resume Next
Dim fil
'8 = ForAppending
Set fil = fso.OpenTextFile(LogFile, 8, True)
fil.WriteLine(LogData)
fil.Close
Set fil = Nothing
End Sub
Option Explicit
Const LogFile = "LocalAdmins1.log"
Const resultFile = "C:\scripts\security project\LocalAdministratorsMembership1.csv"
Const inputFile = "C:\scripts\security project\HADCServers.txt"
Const Faillist = "C:\scripts\security project\Faillist1.csv"
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim shl
Set shl = WScript.CreateObject("WScript.Shell")
Dim fil
Set fil = fso.OpenTextFile(inputFile)
Dim results
Dim Fail
Set results = fso.CreateTextFile(resultFile, True)
Set Fail = fso.CreateTextFile(Faillist, True)
WriteToLog "Beginning Pass of " & inputFile & " at " & Now()
'WScript.Echo "Beginning Pass of " & inputFile & " at " & Now()
On Error Resume Next
Dim grp
Dim line
Dim exec
Dim pingResults
Dim member
While Not fil.AtEndOfStream
line = fil.ReadLine
Set exec = shl.Exec("ping -n 2 -w 1000 " & line)
pingResults = LCase(exec.StdOut.ReadAll)
If InStr(pingResults, "reply from") Then
WriteToLog line & " responded to ping"
'WScript.Echo line & " responded to ping"
On Error Resume Next
Set grp = GetObject("WinNT://" & line & "/Administrators")
If Err.Number <> 0 Then
Fail.WriteLine line
Else
'WScript.Echo line & ", Administrators"
results.WriteLine line & ",Administrators,"
For Each member In grp.Members
If (member.Class = "Group") Then
results.WriteLine ",," & member.Name & ",," & member.Description
ElseIf (member.Class = "User") Then
'WScript.Echo "Administrators: " & member.Name
WriteToLog line & ": Administrators - " & member.Name
results.WriteLine ",," & member.Name & ",," & member.Description
End If
Next
End If
Else
WriteToLog line & " did not respond to ping"
'WScript.Echo line & " did not respond to ping"
End If
Wend
results.Close
Sub WriteToLog(LogData)
On Error Resume Next
Dim fil
'8 = ForAppending
Set fil = fso.OpenTextFile(LogFile, 8, True)
fil.WriteLine(LogData)
fil.Close
Set fil = Nothing
End Sub