El Blog de Gualtrysoft

Windows 2000/2003/2008, Active Directory, VBScript, Hyper-V, PowerShell y todo aquello interesante a la hora de usar, configurar y administrar Windows Server. También tenemos longanizas…

Script VBScript Para Listar La Caducidad De Las Cuentas De Usuarios De Un Dominio

Posted by urpiano en martes 17 \17\+01:00 julio \17\+01:00 2007

Este script permite listar todos los usuarios de un dominio, mostrando la fecha de expiración de su cuenta o si nunca expira. El script permite especificar el nombre del dominio del que se listarán los usuario o listar los del dominio en el que está logado el usuario que lo lanza. La lista obtenida puede ser mostrada por pantalla (predeterminado), volcada a un fichero de texto (separado por tabuladores) o volcarla en un libro Excel.

Sintaxis

cscript [//nologo] caducidad-de-cuentas.vbs[/dominio:dominio] [/txt:fichero] [/xls:libro]

Siendo

Argumento ¿Requerido? Descripción
dominio:dominio No
FQDN del dominio al que se conectará para listar los usuarios (ej: minasmorgul.mordor.org). Si se omite, se listará el dominio en el que está logado el usuario que lanza el script.
txt:fichero No
Ruta y nombre del fichero de texto, separado por tabuladores, al que se volcará el listado.
xls:libro No
Ruta y nombre del libro de Excel al que se volcará el listado.

Este es el código del script

'*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
'*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*
'* caducidad-de-cuentas.vbs                                            *
'*                                                                     *
'* Este script permite listar todos los usuarios de un dominio,        *
'* mostrando la fecha de expiración de su cuenta o si nunca expira. El *
'* script permite especificar el nombre del dominio del que se         *
'* listarán los usuario o listar los del dominio en el que está logado *
'* el usuario que lo lanza. La lista obtenida puede ser mostrada por   *
'* pantalla (predeterminado), volcada a un fichero de texto (separado  *
'* por tabuladores) o volcarla en un libro Excel.                      *
'*                                                                     *
'* Sintaxis                                                            *
'*                                                                     *
'* cscript [//nologo] caducidad-de-cuentas.vbs[/dominio:dominio]       *
'* [/txt:fichero] [/xls:libro]                                         *
'*                                                                     *
'* Siendo                                                              *
'*                                                                     *
'* - dominio (Opcional):                                               *
'*         FQDN del dominio al que se conectará para listar los        *
'*         usuarios (ej: minasmorgul.mordor.org). Si se omite, se      *
'*         listará el dominio en el que está logado el usuario que     *
'*         lanza el script.                                            *
'*                                                                     *
'* - fichero (Opcional):                                               *
'*         Ruta y nombre del fichero de texto, separado por            *
'*         tabuladores, al que se volcará el listado.                  *
'*                                                                     *
'* - libro (Opcional):                                                 *
'*         Ruta y nombre del libro de Excel al que se volcará el       *
'*         listado.                                                    *
'*                                                                     *
'* - ? (Opcional):                                                     *
'*         Muestra la ayuda en línea.                                  *
'*                                                                     *
'*                                                                     *
'* © Fernando Reyes                                                    *
'* Julio De 2007                                                       *
'*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*
'*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

'Declaración de variables requerida
Option Explicit

Dim str_Error 'As String
Dim int_Error 'As String
Dim str_Dominio 'As String
Dim str_TXT 'As String
Dim str_XLS 'As String
Dim obj_Conexion 'As ADODB.Connection
Dim obj_Comando 'As ADODB.Command
Dim rs_Usuarios 'As ADODB.Recordset
Dim obj_Usuario 'As Object
Dim str_Fecha 'As String
Dim app_Excel 'As Excel.Application
Dim wb_Libro 'As Excel.Workbook
Dim ws_Hoja 'As Excel.Worksheet
Dim obj_FS 'As Scripting.Filesystemobject
Dim obj_TS 'As Scripting.TextStream
Dim str_TS 'As String
Dim arr_Dominio 'As Variant
Dim lng_Linea 'As Long


'Validando los argumentos y almacenando
'sus valores
If f_RevisarArgumentos( _
                       str_Error, _
                       int_Error) Then

    Call s_Ayuda(str_Error)
    WScript.Quit int_Error

End If

'Creamos una conexión ADO
Set obj_Conexion = CreateObject("ADODB.Connection")

'Establecemos el proveedor ADSI
obj_Conexion.Open "Provider=ADsDSOObject;"

'Creamos un objeto comando
Set obj_Comando = CreateObject("ADODB.Command")

'Establecemos que su conexión es la anteriormente
'creada
obj_Comando.ActiveConnection = obj_Conexion

'Establecemos propiedades de acceso a los datos
'para evitar el límite de 1000 resultados que
'tiene ADSI de forma predeterminada.
obj_Comando.Properties("Page Size") = 100
obj_Comando.Properties("Timeout") = 30
obj_Comando.Properties("Cache Results") = False

'Establecemos la cadena de consulta
obj_Comando.CommandText = _
    "<GC://" & str_Dominio & ">;(objectCategory=User)" & _
        ";accountExpires,distinguishedName;subtree"  

'Creamos el Recordset
Set rs_Usuarios = obj_Comando.Execute

'Recorremos el recordset
Do Until rs_Usuarios.EOF

    'Creamos un objeto usuario con el proveedor LDAP,
    'usando el nombre distinguido obtenido de la consulta
    Set obj_Usuario = GetObject("LDAP://" & _
                     rs_Usuarios.Fields("distinguishedName"))
    
    'Establecemos control de errores
    On Error Resume Next
    
    'Obtenemos la fecha de caducidad
    str_Fecha = FormatDateTime( _
               obj_Usuario.AccountExpirationDate,vbShortDate)
    
    'Si se produce el error -2147467259 o la fecha devuelta
    'es igual o menor a 1/1/1970 la cuenta no caduca nunca
    If Err.Number = -2147467259 Or CDate(str_Fecha) <= _
        CDate(FormatDateTime("01/01/1970",vbShortDate)) Then
    
        str_Fecha = "No expira"
        
    End If
    
    'Una vez pasada la posibilidad de error, devolvemos el
    'control de errores al interprete de VBScript
    On Error Goto 0
    
    'Si se ha recibido parámetro de fichero de texto,
    'escribimos la línea correspondiente
    If Len(str_TXT) > 0 Then _
        obj_TS.WriteLine _
            rs_Usuarios.Fields("distinguishedName") & _
            vbTab & str_Fecha
    
    'Si se ha recibido parámetro de libro de excel...
    If Len(str_XLS) > 0 Then
    
        'Escribimos en la columna A el nombre del usuario
        ws_Hoja.Range("A" & lng_Linea).Value = _
                    rs_Usuarios.Fields("distinguishedName")   
        
        'Escribimos en la columna B su caducidad
        ws_Hoja.Range("B" & lng_Linea).Value = str_Fecha
        
        'Incrementamos el contador de líneas   
        lng_Linea = lng_Linea + 1
    
    End If
    
    'Si no se hyan pasado ni fichero de texto ni libro de Excel
    'se mostrará la información en pantalla
    If Len(str_TXT) = 0 And Len(str_XLS) = 0 Then _
        WScript.echo rs_Usuarios.Fields("distinguishedName") & _
        vbTab & str_Fecha
        
    'Vamos al siguiente usuario
    rs_Usuarios.MoveNext
    
Loop
 
'Fase de limpieza de bullarenga :-)

'Cerramos el recordset y vaciamos su variable
rs_Usuarios.Close
Set rs_Usuarios = Nothing

'Cerramos la conexión y vaciamos las variables
'de conexión y comando
obj_Conexion.Close
Set obj_Conexion = Nothing
Set obj_Comando = Nothing


'Limpiamos si hay fichero de texto, cerrando
'el fichero y vaciando los objetos TextStream
'y FileSystemObject
If Len(str_TXT) > 0 Then

    obj_TS.Close
    Set obj_TS = Nothing
    Set obj_FS = Nothing
    
End If

'Limpiamos si hay libro de Excel, salvando
'el libro con el nombre recibido, vaciando
'la variable de hoja, cerrando el libro,
'vaciando la variable del libro, cerrando
'la aplicación Excel y vaciando su variable
If Len(str_XLS) > 0 Then

    'Auto-ajustamos las columnas de la hoja
    ws_Hoja.Columns.Autofit
    
    wb_Libro.SaveAs str_XLS
    Set ws_Hoja = Nothing
    wb_Libro.Close
    Set wb_Libro = Nothing
    app_Excel.Quit
    Set app_Excel = Nothing
    
End If


Function f_RevisarArgumentos( _
                             str_Error, _
                             int_Error _
                             ) 'As Boolean
'***********************************************************************
'* Procedimiento: f_RevisarArgumentos                                  *
'* Tipo         : Función                                              *
'* Devolución   : Booleana                                             *
'* Fecha y Hora : 17/07/2007 13:03:36                                  *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Esta función revisa los argumentos recibidos,        *
'*                recogiendo los posibles fallos por falta de          *
'*                argumentos requeridos y almacenando en las           *
'*                variables correspondientes los argumentos            *
'*                recibidos. recibe dos parámetros cuyo fin es ser de  *
'*                salida: una cadena que almacenará los errores        *
'*                detectados y un entero que almacenará el código de   *
'*                los errores detectados. Hay dos tipos de error;      *
'*                error 1 para los parámetros sin nombre requeridos y  *
'*                error 2 para los parámetros con nombre requeridos.   *
'*                En el caso de producirse ambos tipos de errores, el  *
'*                número de error será la suma de ambos: 3             *
'***********************************************************************

    Dim bol_Devolucion 'As Boolean
    Dim bol_Error1 'As Boolean
    Dim bol_Error2 'As Boolean
    Dim int_SheetsInNewWorkBook 'As Integer

    'Iniciamos los indicadores
    bol_Devolucion = False
    bol_Error1 = False
    bol_Error2 = False

    If WScript.Arguments.Named.Exists("?") Then
    
        Call s_Ayuda("**************************" & _
                     vbCrLf & _
                     "*         AYUDA          *" & _
                     vbCrLf & _
                     "**************************")
                     
        WScript.Quit 0
    
    End If
    
    'Revisamos si ha sido pasado el argumento
    '/dominio (dominio)
    If WScript.Arguments.Named.Exists("dominio") Then

        arr_Dominio = Split( _
               WScript.Arguments.Named("dominio"),".")
        str_Dominio = "dc=" & Join(arr_Dominio,",dc=")
        
    'Si no se ha pasado lo obtenemos usando RootDSE
    Else
    
        Dim obj_RootDSE
        Set obj_RootDSE = GetObject("LDAP://RootDSE")
        
        str_Dominio = obj_RootDSE.Get("defaultNamingContext")
        
        Set obj_RootDSE = Nothing

    End If

    'Revisamos si ha sido pasado el argumento
    '/txt (fichero)
    If WScript.Arguments.Named.Exists("txt") Then

        str_TXT =  _
               WScript.Arguments.Named("txt")

        'Creamos el fichero de texto
        Set obj_FS = CreateObject("Scripting.FileSystemObject")
        Set obj_TS = obj_FS.CreateTextFile(str_TXT,True,False)                    
                    
    End If

    'Revisamos si ha sido pasado el argumento
    '/xls (libro)
    If WScript.Arguments.Named.Exists("xls") Then

        str_XLS =  _
               WScript.Arguments.Named("xls")

        'Creamos un objeto aplicación de Excel
        Set app_Excel = CreateObject("Excel.Application")
        
        'Recogemos el número de hojas que tienen los libros
        'al ser creados
        int_SheetsInNewWorkBook = _
                               app_Excel.SheetsInNewWorkbook
        
        'Establecemos que sólo se cree una hoja al crear un
        'libro
        app_Excel.SheetsInNewWorkbook = 1
        
        'Creamos un libro
        Set wb_Libro = app_Excel.Workbooks.Add
        
        'Restauramos el número de hojas que tiene
        'un libro al ser creado
        app_Excel.SheetsInNewWorkbook = _
                               int_SheetsInNewWorkBook
        
        'Cargamos en la variable de hoja la única que
        'contiene el libro
        Set ws_Hoja = wb_Libro.Worksheets(1)
        
        'Establecemos el nombre de la hoja
        ws_Hoja.Name = "Usuarios - Caducidad"
        
        'Ponemos los encabezados de columna
        ws_Hoja.Range("A1").Value = "Usuario"
        ws_Hoja.Range("B1").Value = "Caducidad"
        
        'Establecemos la línea actual de la hoja
        lng_Linea = 2

    End If

    'Preparamos las variables de devolucion:
    'el entero como suma de los posibles errores 1 y 2
    int_Error = Abs(bol_Error1) + (2*Abs(bol_Error2))
    'La devolucion de la función será True en caso de
    'haber alguno de los errores
    bol_Devolucion = (bol_Error1 Or bol_Error2)

    'Hacemos la devolución de la función
    f_RevisarArgumentos = bol_Devolucion

End Function 'f_RevisarArgumentos

Sub s_Ayuda(str_Error)
'***********************************************************************
'* Procedimiento: s_Ayuda                                              *
'* Tipo         : Sub                                                  *
'* Devolución   :                                                      *
'* Fecha y Hora : 17/07/2007 13:03:36                                  *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Este procedimiento muestra la ayuda en línea.        *
'*                Recibe un parámetro de tipo cadena que si no viene   *
'*                será mostrado antes de la línea; pensado para que    *
'*                se muestre un error que se haya detectado.           *
'***********************************************************************

    If Len(str_Error) > 0 Then

        WScript.Echo str_Error & vbCrLf & vbCrLf

    End If

    WScript.Echo "Este script permite listar todos los usuarios de " & _
                 "un dominio, mostrando la fecha"
    WScript.Echo "de expiración de su cuenta o si nunca expira. El " & _
                 "script permite especificar el"
    WScript.Echo "nombre del dominio del que se listarán los usuari" & _
                 "o o listar los del dominio en"
    WScript.Echo "el que está logado el usuario que lo lanza. La li" & _
                 "sta obtenida puede ser"
    WScript.Echo "mostrada por pantalla (predeterminado), volcada a" & _
                 " un fichero de texto (separado"
    WScript.Echo "por tabuladores) o volcarla en un libro Excel."
    WScript.Echo ""
    WScript.Echo "Sintaxis"
    WScript.Echo ""
    WScript.Echo "cscript [//nologo] caducidad-de-cuentas.vbs[/domi" & _
                 "nio:dominio] [/txt:fichero]"
    WScript.Echo "[/xls:libro]"
    WScript.Echo ""
    WScript.Echo "Siendo"
    WScript.Echo ""
    WScript.Echo "- dominio (Opcional):"
    WScript.Echo "FQDN del dominio al que se conectará para listar " & _
                 "los usuarios"
    WScript.Echo "(ej: minasmorgul.mordor.org). Si se omite, se lis" & _
                 "tará el"
    WScript.Echo "dominio en el que está logado el usuario que lanz" & _
                 "a el script."
    WScript.Echo ""
    WScript.Echo "- fichero (Opcional):"
    WScript.Echo "Ruta y nombre del fichero de texto, separado por " & _
                 "tabuladores,"
    WScript.Echo "al que se volcará el listado."
    WScript.Echo ""
    WScript.Echo "- libro (Opcional):"
    WScript.Echo "Ruta y nombre del libro de Excel al que se volcar" & _
                 "á el listado."
    WScript.Echo ""

End Sub 's_Ayuda

 

 

17 respuestas to “Script VBScript Para Listar La Caducidad De Las Cuentas De Usuarios De Un Dominio”

  1. Martin said

    Javier, una duda , al correr el script me sale el siguiente error
    C:\WINDOWS>cscript //nologo caducidad-de-cuentas.vbs /dominio:Amanacer /xls:libro

    C:\WINDOWS\caducidad-de-cuentas.vbs(95, 1) Provider: Table does not exist.
    Alguna ayudita?
    Muchas gracias, saludos desde Paraguay

  2. urpiano said

    Ese error se produce, probablemente, porque estás ejecutando el script con un usuario que no tiene permiso para acceder a la información de Directorio Activo (el administrador local de un equipo miembro, por ejemplo).

  3. Omer Gonzalez said

    Deseo el poder actualizar desde un archivo de excel,ciertos campos de 300 usuario en la pestaña de general, ósea traer máximo de 2 campos de actualización del archivo Excel, al directorio activo alguien podría darme mas o menos la estructura avanzada del script a manejar,la verdad no manejo mucho el ambientes de scripts ha decir verdad.

    Para que tengan una idea el archivo de excel no presenta todo los mismo campos que el usuario a nivel de descripcion,osea,en la hoja dice centro de costo,y el directorio iria en departamento !! Ven.

    En la pagina esta uno pero en verdad es muy basico.Agradeceria toda colaboración en lo posible.

    saludos desde venezuela !!

  4. urpiano said

    Omer,

    ¿Puedes poner en concreto la estructura de columnas de la hoja Excel y a qué atributo de Active Directory debe ir cada columna? Otra cosa ¿Incluye el nombre de usuario la hoja de Excel? Me refiero a nombre de usuario, ya sea en forma nombre distinguido o sAMAccountName.

  5. Andy Castillo said

    Estimado, excelente script. pero te hago una consulta esta consulta tiene algun limite de usuarios
    me reconoce solo 1001

  6. urpiano said

    Andy,

    Cierto, no caí en ese problema. Mira si ahora realiza la búsqueda completa.

  7. Andy Castillo said

    sigue limitando a 1000. estare haciendo algo mal para exportarlo

  8. urpiano said

    Andy,

    Perdona, la modificación no era buena, prueba la que acabo de hacer ahora (por desgracia no tengo más de 1000 usuarios para probar, pero creo que esta vez sí te mostrará todos los resultados).

  9. OSCAR OLMOS said

    Estoy intentando realizar una tarea que me permita modificar el horario de LOGON para múltiples usuarios. He notado que dentro de los comandos DSQUERY y DSGET no existe este criterio. Tengo la esperanza de que si pase con VBS. Podrían ayudarme en este propósito haciéndome alguna indicación?

  10. jusaavedra said

    Hola que tal, mi nombre es Julio Saavedra y algo me manejo en vbscript y necesito de tus conocimientos para ver si se puede resolver un problema que no tengo muy claro si este script me pueda ayudar. Tengo un PC con XP y esta efectuando el trabajo de envio de correo , estos con un proceso automatico los envia, entonces este PC practicamente no se puede apagar y como casi no se puede tocar pasa que cada cierto tiempo la contraseña caduca porque existe una politica corporativa y cuando caduca no se ejecutan una programas .bat y se crea un gran desastre, mi consulta va si existe o se puede crear un script que me entrege la fecha de expiracion de la contraseña cuando la cuenta de usuario es de dominio y algun script que muestre como un popup que la contraseña esta proximo a expirar, no se si es mucho pedir, pero la verdad que tener una solucion como un aviso me ayudaria mucho.

    • urpiano said

      jusaavedra,

      Para saber cuándo expira una contraseña:

      List When a Password Expires

      Basta con que crees un script que ejecute este script (tienes que cambiar el nombre distinguido de usuario en:

      Set objUserLDAP = GetObject _
      («LDAP://CN=myerken,OU=management,DC=fabrikam,DC=com»)

      Para que sea el del usuario que te interesa. Revisas que:

      (dtmValue + intMaxPwdAge) & » (» & _
      int((dtmValue + intMaxPwdAge) – now)

      Sea mayor que el número de días que te convenga que faltan para que expire la contraseña y si es menor el valor que se obtiene con esa expresión, presentas un cuadro de diálogo en el que se pida el cambio de contraseña:

      Change the Password for a User

  11. Pablo said

    Hola, trabajo en una empresa multinacional trabajando a nivel global en un unico dominio con multiples OU divididas por región y sitios dentro de cada una, necesito extraer las fechas de vencimiento para cada sitio de las OU de Sudamérica (esto sería por ejemplo, Dominio/sudamerica/buenos aires), puede definirse en los parámetros que se extraiga solo la informacion de usuarios por OU? o debo extraer obligatoriamente todo el dominio y luego filtrar lo que me es de utilidad?

    desde ya muchas gracias por la ayuda, tu Post es de mucha utilidad

    • urpiano said

      Pablo,

      El script no contempla la posibilidad de listar por OU, lista el dominio completo. Podrías sacar el listado a Excel, y en Excel crear una macro que te ponga la OU en la que está el usuario, para así poder luego ordenar por OU. La macro podría ser algo así:

      
      Sub s_OU()
      
          Dim int_Posicion
          Dim lng_Linea
          Dim str_ColumnaDN
          Dim str_ColumnaOU
          Dim ws_Hoja As Excel.Worksheet
      
          str_ColumnaDN = InputBox("Entre la letra de columna donde está " & _
                                              "el nombre distinguido de usuario","Columna usuario","A")
          str_ColumnaOU = InputBox("Entre la letra de columna donde se " & _
                                              "escribirá el nombre de la OU a la que pertenece","Columna OU","C")
      
          Set ws_Hoja = ActiveSheet
      
          With ws_Hoja
      
              For lng_Linea = 2 To .UsedRange.Rows.Count
      
                  int_Posicion = InStr(1, .Range(str_ColumnaDN & lng_Linea).Value, ",OU=", vbTextCompare)
                  .Range(str_ColumnaOU & lng_Linea).Value = _
                              Right(.Range(str_ColumnaDN & lng_Linea).Value, _
                                      Len(.Range(str_ColumnaDN & lng_Linea).Value) - int_Posicion)
      
              Next lng_Linea
      
          End With
      
          Set ws_Hoja = Nothing
      
      End Sub
  12. Mariano said

    pregunta estupida hace 2 horas que estoy tratando de hacerlo, en que parte modifico para que me lo tire en un archivo???? modifique todo lo que se me ocurrio como para que me lo genere en un archivo, pero me lo tira por pantalla todo el tiempo y de a 1 usuario!!!! osea que tengo que dejar el enter apretado como 15 minutos como para que termine la lista.

    si me pueden ayudar se los agradezco

    Mariano

    • urpiano said

      Mariano,

      Por lo que comentas, me da la impresión de que estás haciendo doble clic sobre el archivo .VBS. No tienes que lanzarlo así, tienes que lanzarlo desde una ventana de comandos, usando CScript como interprete de VbScript, no WScript, que es el interprete de VbScript que se usa cuando se hace doble clic sobre un script. Veamos unos ejemplos:

      cscript //nologo caducidad-de-cuentas.vbs /txt:c:\listados\caducidad-cuentas.txt

      En este ejemplo, se vuelca la caducidad de las cuentas de usuario, del dominio en el que se está logado, al fichero de texto c:\listados\caducidad-cuentas.txt.


      cscript //nologo caducidad-de-cuentas.vbs /xls:c:\listados\caducidad-cuentas.xls

      En este ejemplo, se vuelca la caducidad de las cuentas de usuario, del dominio en el que se está logado, al libro de Excel c:\listados\caducidad-cuentas.xls.


      cscript //nologo caducidad-de-cuentas.vbs /dominio:tia.org /xls:c:\listados\caducidad-cuentas-tia.xls

      En este ejmplo, se vuelca la caducidad de las cuentas de usuario del dominio tia.org al libro de excel c:\listados\caducidad-cuentas-tia.xls.


      Como puedes ver, el valor de los parámetros se pasa poniendo dos puntos después del nombre de parámetro; debes tener en cuenta que si el valor incluye uno o más espacios, se debe encerrar entre comillas (por ejemplo /txt:»c:\listados de usuarios\caducidad-cuentas.txt»).

  13. DiegoFG said

    Hola Urpiano,

    Estoy ejecutandolo, pero me saca el siguiente error:

    D:\Scripts>cscript //nologo caducidad-de-cuentas.vbs /xls:c:\caducidad-cuentas.xls
    D:\Scripts\caducidad-de-cuentas.vbs(110, 5) (null): 0x80005000

  14. Daniel FH said

    Hola Buen día,

    Al ejecutarlo me genera el siguiente mensaje de error:

    cscript //nologo listar-caducidad-password-ad.vbs /f:c:\listados\caducidad-cuentas.xls dominio.local
    D:\listar-caducidad-password-ad.vbs(248, 5) (null):0x80005000

    Any Idea?

Replica a DiegoFG Cancelar la respuesta