Wednesday, January 13, 2016

VB Script to List Local Administrators Membership

VB Script to List Local Administrators Membership

Script Credit : Brian Desmond

'==========================================================================
' NAME: Dump Local Administrators Membership
'
' AUTHOR: Brian Desmond,
' DATE  : 4/16/2007
'==========================================================================


Option Explicit

Const LogFile = "LocalAdmins.log"
Const resultFile = "LocalAdministratorsMembership.csv"
Const inputFile = "c:\scripts\workstations.txt"


Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Dim shl
Set shl = WScript.CreateObject("WScript.Shell")

Dim fil
Set fil = fso.OpenTextFile(inputFile)

Dim results
Set results = fso.CreateTextFile(resultFile, 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)
    
    'pingResults ="reply from"
     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")
       
        'WScript.Echo line & ", Administrators"
        results.WriteLine line & ",Administrators,"
       
        For Each member In grp.Members
            'WScript.Echo     "Administrators: " & member.Name
            WriteToLog line & ": Administrators - " & member.Name
            results.WriteLine ",," & member.Name
        Next
    Else
        WriteToLog line & " did not respond to ping"
        'WScript.Echo line & " did not respond to ping"
    End If
Wend

results.Close
WScript.Echo "Operation Finished"

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

Solved : The user profile failed to attach. The process cannot access the file becase it is being used by another process

Issue :  The user profile failed to attach. Please contact Support. Status : 0x0000000B, Message: Cannot open virtual disk Error Code: 0x000...