none
Verificar Instalacion de Software hecha vía GPO RRS feed

  • Pregunta

  • Hola, apliqué una política para instalar un software en la red, está funcionan bien, mi consulta es si existe un lugar donde verificar a que usuarios se les ha instalado el software (aplicado la politica) y a quienes no.

    Agradecido de antemano.

    miércoles, 9 de enero de 2013 20:45

Respuestas

  • Hola,

    Me temo que no, esto lo puedes realizar desde el equipo cliente y no creo que te resulte práctico. Por otro lado, con la GPMC tanto modeling como RSOP puedes revisar si la política está bien diseñada, pero eso no siempre es garantía de que aplique.

    Puedes configurar un script como el siguiente en una GPO que se ejecute en la sección user a los usuarios que deberían tener el software y realizar una búsqueda de un fichero ejecutable del software que has desplegado y en función de si existe o no puedes saber si se le ha instalado correctamente. Eso partiendo de la base de que el software se ha instalado en la misma ruta a todos los usuarios...

    set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objNetwork = WScript.CreateObject("WScript.Network")
    Set objSysInfo = Wscript.createObject("ADSystemInfo")
    
    
    'Info archivo a buscar sobre software
    strSoftDir = "C:\Program Files (x86)\Microsoft Office\Office14\"
    strBinary = "winword.exe"
    
    'Info archivo LOG
    strDirectory = "\\server\share\"    'MODIFICA CON EL PATH DONDE QUIERAS DEJAR EL LOG (UNC), LOS USUARIOS DEBEN TENER WRITE ACCESS!!!
    strFile = "results.txt" 
    
    'Info de usuario y equipo que ejecuta script
    strHost=objNetwork.Computername
    strDNUser=objSysInfo.username
    Set objUser = GetObject("LDAP://" & strDNUser)
    strUser=objUser.displayname
    
    'Info del estado de deployment
    strExist  = "Software no instalado"
    If objFSO.FileExists (strSoftDir & strBinary) then
    	strExist = "Software instalado"
    end if
    
    'insert de datos en registro
    
    Set objTextFile = objFSO.OpenTextFile(strDirectory & strFile, 8,True)
    objTextFile.Writeline(strUser & ";" & strHost & ";" & strExist)
    objTextFile.close 

    En este caso, cada vez que el usuario hiciera logon revisaría si el fichero del software existe o no y volcaría los datos a un fichero de texto donde tendrías todos los usuarios, máquinas y estado de la instalación en el siguiente formato:

    Username;computername;Software instalado (o no, en función de si existe el fichero)

    Para ello deberías actualizar las variables de la parte superior especificando tanto las rutas de salida del log como las de búsqueda del fichero ejecutable del software instalado.

    Saludos

    Julio Rosua


    PS: Esta solución es dando por hecho que no dispones de una herramienta de gestión de activos de software tipo SCCM, las hay a montones, y si esto es una tarea recurrente en tu caso estaría bien que explorases esas opciones. 


    • Editado Julian Ros domingo, 13 de enero de 2013 14:51
    • Marcado como respuesta Uriel Almendra lunes, 15 de abril de 2013 15:00
    sábado, 12 de enero de 2013 11:34