‘Este script enumera los usuarios que pertenecen a cada
‘uno de los grupos locales de un equipo
‘© Fernando Reyes [MS MVP] – Abril de 2005
‘Modified: Juansa [MS MVP Windows Server]
‘ Variables declaradas faltantes  por Martin Ojeda Knapp (FIX) y TEST
‘Date: 11/04/2005
‘Revised: 15/12/2005
‘Sintaxis: UserGroupsLocal.vbs ficheroSalida

‘Exigimos la declaración de variables
Option Explicit

Dim obj_Nombre_Usuario
Dim obj_Nombre_Grupo
Dim obj_Equipo
Dim obj_Grupo
Dim obj_Shell
Dim FicheroSalida
Dim objFSO
Dim str_Equipo
Dim str_Nombre
Dim objTextFile
Dim M

Const ForReading = 1, ForWriting = 2, ForAppending = 8

‘Argumentos
If WScript.Arguments.count > 0 Then
     FicheroSalida = WScript.Arguments.item(0)
Else
     FicheroSalida = InputBox("Nombre del fichero a crear incluir .txt", "Gestion de usuarios")
End If

‘Creación fichero salida
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile (FicheroSalida, ForWriting, True)

‘Equipo local
str_Equipo = "."
Set obj_Shell = CreateObject("WScript.Shell")
str_Nombre = obj_Shell.ExpandEnvironmentStrings("%COMPUTERNAME%")

‘Creamos un objeto que contiene el equipo local
Set obj_Equipo = GetObject("WinNT://" & str_Equipo & ",Computer")

‘Mostramos el nombre del equipo
WScript.Echo "Equipo: " & str_Nombre & VBCrLf

‘Filtramos los objetos del equipo para obtener los grupos
obj_Equipo.Filter = Array("Group")

‘Recorremos cada grupo uno a uno
For Each obj_Nombre_Grupo In obj_Equipo

     ‘Creamos un objeto que contiene al grupo actual
      Set obj_Grupo = GetObject("WinNT://" & str_Equipo & "/" & obj_Nombre_Grupo.Name & ",Group")

      objTextFile.WriteLine("Nombre del grupo       : " & obj_Nombre_Grupo.Name)
      objTextFile.WriteLine("  Descripción del grupo: " & obj_Nombre_Grupo.Name)

      ‘Filtramos los objetos del grupo para obtener los
      ‘usuarios miembros
       obj_Grupo.members.Filter = Array("User")

      ‘Recorremos los usuarios de uno en uno
       For Each obj_Nombre_Usuario In obj_Grupo.members
       set M = obj_Nombre_Usuario
       objTextFile.WriteLine("                  " & obj_Nombre_Usuario.Name)  
       Next

     
Next

WScript.Echo "Finalizado, vea el archivo creado!"
‘Terminamos el script limpiándonos el culito
Set obj_Nombre_Usuario = Nothing
Set obj_Nombre_Grupo = Nothing
Set obj_Equipo = Nothing
Set obj_Shell = Nothing