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 Averiguar Si Existen Nombres De Equipos En Un Dominio

Posted by urpiano en Domingo 11 \11\UTC mayo \11\UTC 2008

Este script permite saber si existen una o más cuentas de equipo en Active Directory.

Sintaxis

cscript [//nologo] existe-equipo-ad.vbs /D:dominio [/E:equipos] [/F:fichero] [/S:fichero] [/?]

Siendo

Etiqueta Dato ¿Requerido? Descripción
E equipos No
Lista de nombres de equipos a consultar separados por comas. Uno de los dos argumentos /E o /F deben ser pasados, si no se produce un error. En caso de ser pasados los dos, sólo se tiene en cuenta el argumento /F.
F fichero No
Ruta y nombre de un fichero de texto plano con los nombres de equipos a consultar, uno por línea. Uno de los dos argumentos /E o /F deben ser pasados, si no se produce un error. En caso de ser pasados los dos, sólo se tiene en cuenta el argumento /F.
D dominio
Nombre FQDN del dominio al que se consulta.
S fichero No
Ruta y nombre de un fichero de texto de valores separados por tabuladores al que se volcará la información resultante de la ejecución del script.
?   No
Muestra la ayuda en línea.

Ejemplos:

– Revisa la existencia de los equipos pc-ofelia,pc-mortadelo en el dominio tia.org; los resultados se mostrarán por pantalla:

cscript //nologo existe-equipo-ad.vbs /E:pc-ofelia,pc-mortadelo /D:tia.org

– Revisa la existencia, en el dominio tia.org, de la lista de equipos contenida en el fichero c:tialista-equipos.lst; los resultados se volcarán al fichero c:tialistadosequipos.tsv:

cscript //nologo existe-equipo-ad.vbs /F:c:tialista-equipos.lst /D:tia.org /S:c:tialistadosequipos.tsv

Este es el código del script

'*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
'*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*
'* existe-equipo-ad.vbs                                                *
'*                                                                     *
'* Este script permite saber si existen una o más cuentas de equipo en *
'* Active Directory.                                                   *
'*                                                                     *
'* Sintaxis                                                            *
'*                                                                     *
'* cscript [//nologo] existe-equipo-ad.vbs /D:dominio [/E:equipos]     *
'* [/F:fichero] [/S:fichero] [/?]                                      *
'*                                                                     *
'* Siendo                                                              *
'*                                                                     *
'* - /E: equipos (Opcional):                                           *
'*         Lista de nombres de equipos a consultar separados por       *
'*         comas. Uno de los dos argumentos /E o /F deben ser pasados, *
'*         si no se produce un error. En caso de ser pasados los dos,  *
'*         sólo se tiene en cuenta el argumento /F.                    *
'*                                                                     *
'* - /F: fichero (Opcional):                                           *
'*         Ruta y nombre de un fichero de texto plano con los nombres  *
'*         de equipos a consultar, uno por línea. Uno de los dos       *
'*         argumentos /E o /F deben ser pasados, si no se produce un   *
'*         error. En caso de ser pasados los dos, sólo se tiene en     *
'*         cuenta el argumento /F.                                     *
'*                                                                     *
'* - /D: dominio (Requerido):                                          *
'*         Nombre FQDN del dominio al que se consulta.                 *
'*                                                                     *
'* - /S: fichero (Opcional):                                           *
'*         Ruta y nombre de un fichero de texto de valores separados   *
'*         por tabuladores al que se volcará la información resultante *

'*         de la ejecución del script.                                 *
'*                                                                     *
'*                                                                     *
'* Ejemplos:                                                           *
'*                                                                     *
'* - Revisa la existencia de los equipos pc-ofelia,pc-mortadelo en el  *
'* dominio tia.org; los resultados se mostrarán por pantalla:          *
'*                                                                     *
'* cscript //nologo existe-equipo-ad.vbs /E:pc-ofelia,pc-mortadelo     *
'* /D:tia.org                                                          *
'*                                                                     *
'* - Revisa la existencia, en el dominio tia.org, de la lista de       *
'* equipos contenida en el fichero c:\tia\lista-equipos.lst; los       *
'* resultados se volcarán al fichero c:\tia\listados\equipos.tsv:      *
'*                                                                     *
'* cscript //nologo existe-equipo-ad.vbs /F:c:\tia\lista-equipos.lst   *
'* /D:tia.org /S:c:\tia\listados\equipos.tsv                           *
'*                                                                     *
'*                                                                     *
'* © Fernando Reyes                                                    *
'* Mayo De 2008                                                        *
'*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*
'*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

'Exigimos la declaración de variables
Option Explicit


Dim str_Error 'As String
Dim int_Error 'As String
Dim arr_Equipos 'As String
Dim str_Dominio 'As String
Dim str_FicheroSalida 'As String
Dim str_Resultados 'As String
Dim int_Equipo 'As Integer

Dim obj_FS 'As Scripting.FileSystemObject
Dim obj_TS 'As Scripting.TextStream



'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 el encabezado del listado con los resultados
str_Resultados = "Nombre" & vbTab & "Resultado"

'Si no hay que volcar la información en un fichero...
If Len(str_FicheroSalida) = 0 Then

    'Mostramos el encabezado por pantalla
    WScript.Echo str_Resultados
    
    'Subrayamos el encabezado
    WScript.Echo "======" & vbTab & "========="
    
    'Vaciamos la variable con los resultados
    str_Resultados = ""
    
Else

    'Añadimos un salto de línea a los encabezados
    str_Resultados = str_Resultados & vbCrLf
    
End If
    
For int_Equipo = LBound(arr_Equipos) To UBound(arr_Equipos)

    str_Resultados = str_Resultados & arr_Equipos(int_Equipo) & vbTab
    
    str_Resultados = str_Resultados & _
            f_IIf(f_ExisteEquipoEnDominio(arr_Equipos(int_Equipo), _
                                          str_Dominio), _
                  "Existe", "No Existe")
                  
    If Len(str_FicheroSalida) = 0 Then
    
        'Mostramos el resultado del equipo actual por pantalla
        WScript.Echo str_Resultados

        'Vaciamos la variable con los resultados
        str_Resultados = ""
        
    Else
    
        'Añadimos un salto de línea, preparando el siguiente equipo
        str_Resultados = str_Resultados & vbCrLf
        
    End If
    

Next 'int_Equipo


'Si hay que volcar información en el fichero
'de salida de ruta y nombre str_FicheroSalida
If Len(str_FicheroSalida) > 0 Then

    'Creamos un objeto FileSystemObject
    Set obj_FS = CreateObject("Scripting.FileSystemObject")

    'Creamos el fichero de salida
    Set obj_TS = obj_FS.CreateTextFile(str_FicheroSalida)

    'Volcamos la información de salida en el fichero
    obj_TS.Write str_Resultados

    'Cerramos el fichero de salida
    obj_TS.Close

    'Limpieza de popa :-)
    Set obj_TS = Nothing
    Set obj_FS = Nothing

End If

Function f_ExisteEquipoEnDominio(str_Equipo,str_DNDominio)
'***********************************************************************
'* Procedimiento: f_ExisteEquipoEnDominio                              *
'* Tipo         : Función                                              *
'* Devolución   : Booleana                                             *
'* Fecha y Hora : 11/09/2007 17:04:08                                  *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Esta función recibe un nombre de equipo y un nombre  *
'*                distinguido de dominio y mira si el equipo existe    *
'*                en el dominio, devolviendo True si existe y False    *
'*                si no.                                               *
'***********************************************************************

    Const ADS_SCOPE_SUBTREE = 2
    Dim objConnection
    Dim objCommand
    Dim objRecordSet
    Dim bol_Devolucion
    
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    
    Set objCommand.ActiveConnection = objConnection
    objCommand.CommandText = _
        "Select Name, Location, operatingSystemVersion from " & _
            "'LDAP://" & str_DNDominio & "' where objectClass='computer'" & _
                " and Name = '" & str_Equipo & "'"  
'    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
    Set objRecordSet = objCommand.Execute
    
    If objRecordSet.RecordCount = 0 Then
    
        bol_Devolucion = False
        
    Else
    
        bol_Devolucion = True
        
    End If
    
    f_ExisteEquipoEnDominio = bol_Devolucion
    

End Function 'f_ExisteEquipoEnDominio

Function f_RevisarArgumentos( _
                             str_Error, _
                             int_Error _
                             ) 'As Boolean
'***********************************************************************
'* Procedimiento: f_RevisarArgumentos                                  *
'* Tipo         : Función                                              *
'* Devolución   : Booleana                                             *
'* Fecha y Hora : 11/09/2007 16:55:45                                  *
'* 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 tres tipos de error;     *
'*                error 1 para los argumentos sin nombre requeridos y  *
'*                no encontrados, error 2 para los argumentos con      *
'*                nombre requeridos y no encontrados, por último,      *
'*                error 4 para los combos de argumentos opcionales     *
'*                (un combo de argumentos opcionales es aquel          *
'*                conjunto de argumentos opcionales que es requerido   *
'*                que se pase al menos uno de ellos y que si se pasa   *
'*                más de uno se ignorarán aquellos que estén detrás    *
'*                en la prioridad entre ellos; una característica      *
'*                clara de lo que es un combo de argumentos es cuando  *
'*                dos omás argumentos almacenan su valor en la misma   *
'*                variable). En el caso de producirse más de un tipo   *
'*                de error, el número de error será la suma de ambos   *
'*                de los errores recibidos, es decir 3, 5 o 6          *
'***********************************************************************

    Dim bol_Devolucion 'As Boolean
    Dim bol_Error1 'As Boolean
    Dim bol_Error2 'As Boolean
    Dim bol_Error4 'As Boolean
    Dim obj_FS 'As Scripting.FileSystemObject
    Dim obj_TS 'As Scripting.TextStream

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


    'Si hay que mostrar la ayuda, se muestra y
    'termina el script
    If WScript.Arguments.Named.Exists("?") Then

        Call s_Ayuda("******************" & vbCrLf & _
                     "*     AYUDA      *" & vbCrLf & _
                     "******************")

        WScript.Quit 0

    End If

    'Revisamos que esté el argumento requerido 
    '/D (dominio)
    If WScript.Arguments.Named.Exists("D") Then

        str_Dominio =  _
               "dc=" & Replace( _
                WScript.Arguments.Named("D"),".",",dc=")

    Else

        str_Error = str_Error & vbcrlf & _
                    "Error 2, falta argumento " & _
                    "requerido con nombre: " & _
                    "/D (dominio)" & vbCrLf
        bol_Error2 = True

    End If

    'Revisamos que esté el argumento
    '/S (fichero)
    If WScript.Arguments.Named.Exists("S") Then

        str_FicheroSalida =  _
               WScript.Arguments.Named("S")

    End If

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

        Set obj_FS = CreateObject( _
                           "Scripting.FileSystemObject")
                           
        'Si no existe el fichero pasado como fichero de entrada
        'guardamos el error correspondiente-
        If Not obj_FS.FileExists(Wscript.Arguments.Named("F")) Then
        
            str_Error = str_Error & vbCrLf & _
                        "Error 4, el fichero """ & _
                        Wscript.Arguments.Named("F") & _
                        """ con la lista " & _
                        "de equipos no existe."
            bol_Error4 = True
            
        Else
        
            'En caso de que exista, abrimos el fichero
            Set obj_TS = obj_FS.OpenTextFile( _
                                 Wscript.Arguments.Named("F"))
    
            'Volcamos el contenido como aray, tomando el salto de línea
            'como separador para la función Split
            arr_Equipos = Split( _
                   obj_TS.ReadAll,vbCrLf)
    
            'Cerramos el fichero
            obj_TS.Close
    
            'Vaciamos el objeto TextStream
            Set obj_TS = Nothing
            
        End If
        
        'Vaciamos el objeto FileSystemObject
        Set obj_FS = Nothing

    'Revisamos si ha sido pasado el argumento
    '/E (equipos)
    Elseif WScript.Arguments.Named.Exists("E") Then

        arr_Equipos = _
               Split(WScript.Arguments.Named("E"),",")

    Else

        str_Error = str_Error & _
                    "Error 4: No se ha pasado " & _
                    "ninguno de los argumentos" & _
                    " integrantes de un combo " & _
                    "de argumentos. En un comb" & _
                    "o de argumentos todos los" & _
                    " argumentos son opcionale" & _
                    "s, sin embargo debe ser p" & _
                    "asado uno al menos; si se" & _
                    " pasa más de uno, sólo se" & _
                    " tendrá en cuenta uno, el" & _
                    " primero en el orden de a" & _
                    "rgumentos del combo. En e" & _
                    "ste caso los argumentos q" & _
                    "ue integran el combo son " & _
                    "(en orden de prioridad): "
        str_Error = str_Error & _
                    """/F""" & _
                    " y ""/E""" & vbCrLf
        bol_Error4 = True

    End If

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

    '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 : 11/09/2007 16:55:45                                  *
'* 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.           *
'***********************************************************************

    'Si hay que mostrar algún texto previo a la ayuda, lo hacemos
    If Len(str_Error) > 0 Then

        WScript.Echo str_Error & vbCrLf & vbCrLf

    End If

    'A continuación, mostramos la ayuda por pantalla
    WScript.Echo "Este script permite saber si existen una o más cu" & _
                 "entas de equipo en Active"
    WScript.Echo "Directory."
    WScript.Echo ""
    WScript.Echo "Sintaxis"
    WScript.Echo ""
    WScript.Echo "cscript [//nologo] existe-equipo-ad.vbs /D:domini" & _
                 "o [/E:equipos] [/F:fichero]"
    WScript.Echo "[/S:fichero] [/?]"
    WScript.Echo ""
    WScript.Echo "Siendo"
    WScript.Echo ""
    WScript.Echo "- /E: equipos (Opcional):"
    WScript.Echo "Lista de nombres de equipos a consultar separados" & _
                 " por comas."
    WScript.Echo "Uno de los dos argumentos /E o /F deben ser pasad" & _
                 "os, si no se"
    WScript.Echo "produce un error. En caso de ser pasados los dos," & _
                 " sólo se tiene"
    WScript.Echo "en cuenta el argumento /F."
    WScript.Echo ""
    WScript.Echo "- /F: fichero (Opcional):"
    WScript.Echo "Ruta y nombre de un fichero de texto plano con lo" & _
                 "s nombres de"
    WScript.Echo "equipos a consultar, uno por línea. Uno de los do" & _
                 "s argumentos"
    WScript.Echo "/E o /F deben ser pasados, si no se produce un er" & _
                 "ror. En caso"
    WScript.Echo "de ser pasados los dos, sólo se tiene en cuenta e" & _
                 "l argumento /F."
    WScript.Echo ""
    WScript.Echo "- /D: dominio (Requerido):"
    WScript.Echo "Nombre FQDN del dominio al que se consulta."
    WScript.Echo ""
    WScript.Echo "- /S: fichero (Opcional):"
    WScript.Echo "Ruta y nombre de un fichero de texto de valores s" & _
                 "eparados por"
    WScript.Echo "tabuladores al que se volcará la información resu" & _
                 "ltante de la"
    WScript.Echo "ejecución del script."
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo "Ejemplos:"
    WScript.Echo ""
    WScript.Echo "- Revisa la existencia de los equipos pc-ofelia,p" & _
                 "c-mortadelo en el dominio"
    WScript.Echo "tia.org; los resultados se mostrarán por pantalla:"
    WScript.Echo ""
    WScript.Echo "cscript //nologo existe-equipo-ad.vbs /E:pc-ofeli" & _
                 "a,pc-mortadelo /D:tia.org"
    WScript.Echo ""
    WScript.Echo "- Revisa la existencia, en el dominio tia.org, de" & _
                 " la lista de equipos contenida"
    WScript.Echo "en el fichero c:\tia\lista-equipos.lst; los resul" & _
                 "tados se volcarán al fichero"
    WScript.Echo "c:\tia\listados\equipos.tsv:"
    WScript.Echo ""
    WScript.Echo "cscript //nologo existe-equipo-ad.vbs /F:c:\tia\l" & _
                 "ista-equipos.lst /D:tia.org"
    WScript.Echo "/S:c:\tia\listados\equipos.tsv"
    WScript.Echo ""
    WScript.Echo "- :"
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo ""

End Sub 's_Ayuda

Function f_IIf(bol_Expresion, _
               var_Verdadero, _
               var_Falso)
'***********************************************************************
'* Procedimiento: f_IIf                                                *
'* Tipo         : Función                                              *
'* Devolución   : Variant                                              *
'* Fecha y Hora : Julio de 2007                                        *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Esta función emula la función Iif de VBA.Recibe una  *
'*                booleana, que será el resultado de una expresión     *
'*                que se ponga como parámetro al llamar la función,    *
'*                tal y como se hace en la función IIf de VBA, y       *
'*                devolverá lo que se pase como parámetro              *
'*                var_Verdadero, si la booleana es verdadera o lo que  *
'*                se pase como parámetro var_Falso si la booleana es   *
'*                falsa.                                               *
'***********************************************************************

    if bol_Expresion Then

        f_IIF = var_Verdadero

    Else

        f_IIf = var_Falso

    End If

End Function 'f_IIf

 

 

2 comentarios to “Script VBScript Para Averiguar Si Existen Nombres De Equipos En Un Dominio”

  1. Matias Guarinoni said

    Urpiano a este código que cambios le tendría que hacer para que funcione, me podrías pasar uno pronto para comparar que parámetros tengo que agregar o modificar para ejecutarlo porque no logro hacer que me funcione:

    ‘Exigimos la declaración de variables
    Option Explicit

    Dim str_Error ‘As String
    Dim int_Error ‘As String
    Dim arr_Equipos ‘As String
    Dim str_Dominio ‘As String
    Dim str_FicheroSalida ‘As String
    Dim str_Resultados ‘As String
    Dim int_Equipo ‘As Integer

    Dim obj_FS ‘As Scripting.FileSystemObject
    Dim obj_TS ‘As Scripting.TextStream

    ‘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 el encabezado del listado con los resultados
    str_Resultados = “Nombre” & vbTab & “Resultado”

    ‘Si no hay que volcar la información en un fichero…
    If Len(str_FicheroSalida) = 0 Then

    ‘Mostramos el encabezado por pantalla
    WScript.Echo str_Resultados

    ‘Subrayamos el encabezado
    WScript.Echo “======” & vbTab & “=========”

    ‘Vaciamos la variable con los resultados
    str_Resultados = “”

    Else

    ‘Añadimos un salto de línea a los encabezados
    str_Resultados = str_Resultados & vbCrLf

    End If

    For int_Equipo = LBound(arr_Equipos) To UBound(arr_Equipos)

    str_Resultados = str_Resultados & arr_Equipos(int_Equipo) & vbTab

    str_Resultados = str_Resultados & _
    f_IIf(f_ExisteEquipoEnDominio(arr_Equipos(int_Equipo), _
    str_Dominio), _
    “Existe”, “No Existe”)

    If Len(str_FicheroSalida) = 0 Then

    ‘Mostramos el resultado del equipo actual por pantalla
    WScript.Echo str_Resultados

    ‘Vaciamos la variable con los resultados
    str_Resultados = “”

    Else

    ‘Añadimos un salto de línea, preparando el siguiente equipo
    str_Resultados = str_Resultados & vbCrLf

    End If

    Next ‘int_Equipo

    ‘Si hay que volcar información en el fichero
    ‘de salida de ruta y nombre str_FicheroSalida
    If Len(str_FicheroSalida) > 0 Then

    ‘Creamos un objeto FileSystemObject
    Set obj_FS = CreateObject(“Scripting.FileSystemObject”)

    ‘Creamos el fichero de salida
    Set obj_TS = obj_FS.CreateTextFile(str_FicheroSalida)

    ‘Volcamos la información de salida en el fichero
    obj_TS.Write str_Resultados

    ‘Cerramos el fichero de salida
    obj_TS.Close

    ‘Limpieza de popa :-)
    Set obj_TS = Nothing
    Set obj_FS = Nothing

    End If

    ——————————————————————————————-

    También te consulto si a este código se puede hacer un cambio para que en vez de pasar los datos del usuario que esta logueado sea para cualquier usuario en la red:
    Este es el código:

    On Error Resume Next
    Set objSysInfo = CreateObject(“ADSystemInfo”)
    Wscript.Echo “User name: ” & objSysInfo.UserName
    Wscript.Echo “Computer name: ” & objSysInfo.ComputerName
    Wscript.Echo “Site name: ” & objSysInfo.SiteName
    Wscript.Echo “Domain short name: ” & objSysInfo.DomainShortName
    Wscript.Echo “Domain DNS name: ” & objSysInfo.DomainDNSName
    Wscript.Echo “Forest DNS name: ” & objSysInfo.ForestDNSName
    Wscript.Echo “PDC role owner: ” & objSysInfo.PDCRoleOwner
    Wscript.Echo “Schema role owner: ” & objSysInfo.SchemaRoleOwner
    Wscript.Echo “Domain is in native mode: ” & objSysInfo.IsNativeMode

    http://foro.elhacker.net/scripting/scripts_hechos_por_w4rr3d-t319910.0.html#ixzz1RWom4D8e

    Te agradezco la ayuda y disculpa es que no entiendo mucho de script y me gustaría aprender el lenguaje mas bien para aplicarlo en redes con maquinas con windows.

    Gracias

  2. urpiano said

    Matias Guarinoni,

    Respecto a lo primero, no acabo de entender el problema. Acabo de comprobar el script y funciona perfectamente ¿Estás invocándolo correctamente? Tienes que copiarlo desde la página, pegarlo en el bloc de notas y guardar el fichero como fichero vbs, no como txt. Si le has llamado mira la ayuda que tiene ejecutando (imaginemos que lo has guardado en c:\scripts):

    cscript //nologo c:\scripts\existe-equipo-ad.vbs /?

    Respecto a la segunda, la respuesta es que no, no puedes pasar otro usuario a ADSystemInfo. Lo que sí podrías hacer es abrir la ventana de comandos con RunAs y utilizar otro usuario para ello.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: