| |
kirrilian
Posts: 628
Score: 3
Joined: 3/15/2005
From:
Status: offline
|
I wrote this yesterday and thought someone else might find it useful. on error resume next Set objArgs = WScript.Arguments Set fso = CreateObject("Scripting.FileSystemObject") OutputFile = "./local_groups.csv" If objArgs.Count = 1 Then inputfile = WScript.Arguments.Item(0) If fso.FileExists(InputFile) Then Set txtStreamIn = fso.OpenTextFile(InputFile) Set txtStreamOut = fso.OpenTextFile(OutputFile, 2, True) printOut "Server,Group,Users" Do While Not (txtStreamIn.AtEndOfStream) server = txtStreamIn.ReadLine chkgroups server loop Else WScript.Echo "Input file doesnt exist." usage End If Else usage End If Sub usage() WScript.Echo "Usage: cscript local_groups.vbs inputfile.txt" WScript.Echo "NOTE: The inputfile needs to contain server names, one per line." End Sub 'usage 'On Error Resume Next Sub chkgroups(strComputer) line = "" err.clear Set colgroups = GetObject("WinNT://" & strComputer & ",computer") colGroups.GetInfo if err.number <> 0 then printOut strComputer & ",error binding to computer" Else colgroups.Filter = Array("Group") For Each objgroup In colGroups line = strcomputer & "," & objgroup.name For Each objuser in objgroup.members if objuser.name <> "" Then users = users & "," & getFullName(objuser.adspath) Else users = ",no accounts in this group" Exit for end If Next printOut line & users Next err.clear End If End Sub 'chkgroups Sub printOut (data) WScript.Echo data txtStreamOut.writeline data End Sub 'printOut Function getFullName(username) arrayU = Split(username,"/") arraylen = UBound(arrayU) getFullName = arrayU(arraylen - 1) & "/" & arrayU(arraylen) End Function 'getFullName
_____________________________
Have you searched here ? VBScript Fundamentals My Site
|
|