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\+01:00 mayo \11\+01:00 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 a Matias Guarinoni Cancelar respuesta

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 )

Google photo

Estás comentando usando tu cuenta de Google. 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 )

Conectando a %s

 
A %d blogueros les gusta esto: