none
query .vbs wmi RRS feed

  • Pregunta

  • Estimados, si alguien me puede ayudar por favor.
    Estoy realizando un inventario de procesos en la red mediante un script vbs con WMI. He logrado realizar lo siguiente sin experiencia en programacion revisando sitios web, pero tengo que ingresar manualmente el nombre de host para realizar consultas. Aguien tiene conocimiento de como poder realizar una consulta automatoca relacionada con una lista de HOST ubicada en un archivo de texto.
    gracias por su ayuda, adjunto scritp

    Option Explicit
    Dim objWMIService
    Dim objProcess
    Dim colProcess
    Dim strComputer
    Dim strInput
    dim objfile
    dim objdestination


    CONST WTER ="Procesos.txt" 'Nombre de archio a guardar con los datos

    set objfile = createobject("scripting.filesystemobject")
    set objdestination = objfile.opentextfile(WTER,8,true)


    Do
    strComputer = (InputBox(" Ingrese nombre de HOST",_
    "Computer Name"))
    If strComputer <> "" Then
    strInput = True
    End if
    Loop until strInput = True

    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

    Set colProcess = objWMIService.ExecQuery _
    ("Select * from Win32_Process")

    For Each objProcess in colProcess

    objdestination.writeline objProcess.CSName &"="& objProcess.Name &"="& objProcess.ExecutablePath

    Next

    WSCript.Echo "OK"
    WScript.Quit

    lunes, 19 de octubre de 2009 20:43

Respuestas

  • Eso es fácil:

    Option Explicit
    Dim objWMIService
    Dim objProcess
    Dim colProcess
    Dim strComputer
    Dim strInput
    dim objfile
    dim objdestination
    Dim arr_Equipos
    
    
    CONST WTER ="Procesos.txt" 'Nombre de archio a guardar con los datos
    Const EQUIPOS = "Equipos.txt" 'Archivo con los nombres de los equipos
                                   'para revisar, uno por línea 
    
    set objfile = createobject("scripting.filesystemobject")
    
    'Abrimos el fichero con la lista de equipos
    Set objdestination = objfile.OpenTextFile(EQUIPOS)
    'Obtenemos el array con los equipos
    arr_Equipos = Split(objdestination.ReadAll,vbCrLf)
    'Cerramos el fichero de equipos
    objdestination.Close
    'Vaciamos la variable del fichero
    Set objdestination = Nothing
    set objdestination = objfile.opentextfile(WTER,8,true)
    
    For Each strComputer In arr_Equipos
        If strComputer <> "" Then
    
            Set objWMIService = GetObject("winmgmts:" _
            & "{impersonationLevel=impersonate}!\\" _
            & strComputer & "\root\cimv2")
            
            Set colProcess = objWMIService.ExecQuery _
            ("Select * from Win32_Process")
        
            For Each objProcess in colProcess
            
                objdestination.writeline objProcess.CSName &"="& _
                                         objProcess.Name &"="& _
                                         objProcess.ExecutablePath
        
            Next
            
        End If
    Next
    
    WSCript.Echo "OK"
    WScript.Quit

    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    martes, 9 de febrero de 2010 13:10
    Moderador