none
SCRIPT PARA VERSION DE UN PROGRAMA EN ESPECIFICO RRS feed

  • Pregunta

  • porfavor podria alguien ayudarme!!!!!!!!!

    necesito un script para saver la version de un programa en especifico

    espero su pronta respuesta oki.....

    viernes, 9 de abril de 2010 22:57

Respuestas

  • Depende de cómo se instaló ese producto. Si se trata de un instalador de Windows Instaler (un .MSI), existe la clase WMI Win32_Product, con el que puedes obtener la versión. En el caso de Windows 2003 esta clase sólo está presente si está instaldo el proveedor WMI de Windows Instaler en Agregar quitar programas\Agregar componentes de Windows\Herramientas de administración y monitorización.

    Este es el típico script de ejemplo del script center para listar todo el software de este tipo:

    ' List Installed Software
    
    ' Windows Server 2003 : Yes
    ' Windows XP : Yes
    ' Windows 2000 : Yes
    ' Windows NT 4.0 : Yes
    ' Windows 98 : Yes
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.CreateTextFile("c:\software.tsv", True)
    
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSoftware = objWMIService.ExecQuery _
        ("Select * from Win32_Product")
    
    objTextFile.WriteLine "Caption" & vbtab & _
        "Description" & vbtab & "Identifying Number" & vbtab & _
        "Install Date" & vbtab & "Install Location" & vbtab & _
        "Install State" & vbtab & "Name" & vbtab & _ 
        "Package Cache" & vbtab & "SKU Number" & vbtab & "Vendor" & vbtab _
            & "Version" 
    
    For Each objSoftware in colSoftware
        objTextFile.WriteLine objSoftware.Caption & vbtab & _
        objSoftware.Description & vbtab & _
        objSoftware.IdentifyingNumber & vbtab & _
        objSoftware.InstallDate2 & vbtab & _
        objSoftware.InstallLocation & vbtab & _
        objSoftware.InstallState & vbtab & _
        objSoftware.Name & vbtab & _
        objSoftware.PackageCache & vbtab & _
        objSoftware.SKUNumber & vbtab & _
        objSoftware.Vendor & vbtab & _
        objSoftware.Version
    Next
    objTextFile.Close

    Si sólo quieres un software en concreto, puedes filtrar la búsqueda para que devuelva sólo el que quieres. Esto lo haces modificando la consulta WQL, con el campo Nombre o el Caption, especificando el nombre con el que aparece en Agregar o quitar programas. Por ejemplo, supongamos que queremos la versión de MSXML 6.0 Parser:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSoftware = objWMIService.ExecQuery _
        ("Select * from Win32_Product WHERE Name = 'MSXML 6.0 Parser'")
    
    For Each objSoftware in colSoftware
        WScript.Echo "Nombre " & objSoftware.Name
        WScript.Echo "Etiqueta: " & objSoftware.Caption
        WScript.Echo "Descripción: " & objSoftware.Description
        WScript.Echo "Fabricante " & objSoftware.Vendor
        WScript.Echo "Versión " & objSoftware.Version
    Next

    Podrías incluso crear un script que recibiera como parámetros los nombres del equipo a consultar y el nombre del software a consultar:

    strComputer = WScript.Arguments(0)
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSoftware = objWMIService.ExecQuery _
        ("Select * from Win32_Product WHERE Name = '" & Wscript.Arguments(1) & "'")
    
    For Each objSoftware in colSoftware
        WScript.Echo "Nombre " & objSoftware.Name
        WScript.Echo "Etiqueta: " & objSoftware.Caption
        WScript.Echo "Descripción: " & objSoftware.Description
        WScript.Echo "Fabricante " & objSoftware.Vendor
        WScript.Echo "Versión " & objSoftware.Version
    Next

    Vamos a ver ahora cómo se haría esto por PowerShell ¡muchísimo más breve!. Para listar todo el software instalado:

    PS Z:>Get-WmiObject Win32_Product

    Para ver la versión de un software en concreto:

    PS Z:>Get-WmiObject Win32_Product -Filter "Name = 'MSXML 4.0 SP2 (KB954430)'"

    Por último indicarte que no siempre el software ha sido instalado a partir de un paquete de Windows Installer. En este caso no existe una metodología estandarizada, pues dependerá del propio software el cómo obtener esta versión, ya sea consultando la propiedad Version de su fichero ejecutable, invocándole con algún modificador, mirando si tiene una entrada en el registro que lo diga, etc.

     


    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, 13 de abril de 2010 11:02
    Moderador

Todas las respuestas

  • Depende de cómo se instaló ese producto. Si se trata de un instalador de Windows Instaler (un .MSI), existe la clase WMI Win32_Product, con el que puedes obtener la versión. En el caso de Windows 2003 esta clase sólo está presente si está instaldo el proveedor WMI de Windows Instaler en Agregar quitar programas\Agregar componentes de Windows\Herramientas de administración y monitorización.

    Este es el típico script de ejemplo del script center para listar todo el software de este tipo:

    ' List Installed Software
    
    ' Windows Server 2003 : Yes
    ' Windows XP : Yes
    ' Windows 2000 : Yes
    ' Windows NT 4.0 : Yes
    ' Windows 98 : Yes
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.CreateTextFile("c:\software.tsv", True)
    
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSoftware = objWMIService.ExecQuery _
        ("Select * from Win32_Product")
    
    objTextFile.WriteLine "Caption" & vbtab & _
        "Description" & vbtab & "Identifying Number" & vbtab & _
        "Install Date" & vbtab & "Install Location" & vbtab & _
        "Install State" & vbtab & "Name" & vbtab & _ 
        "Package Cache" & vbtab & "SKU Number" & vbtab & "Vendor" & vbtab _
            & "Version" 
    
    For Each objSoftware in colSoftware
        objTextFile.WriteLine objSoftware.Caption & vbtab & _
        objSoftware.Description & vbtab & _
        objSoftware.IdentifyingNumber & vbtab & _
        objSoftware.InstallDate2 & vbtab & _
        objSoftware.InstallLocation & vbtab & _
        objSoftware.InstallState & vbtab & _
        objSoftware.Name & vbtab & _
        objSoftware.PackageCache & vbtab & _
        objSoftware.SKUNumber & vbtab & _
        objSoftware.Vendor & vbtab & _
        objSoftware.Version
    Next
    objTextFile.Close

    Si sólo quieres un software en concreto, puedes filtrar la búsqueda para que devuelva sólo el que quieres. Esto lo haces modificando la consulta WQL, con el campo Nombre o el Caption, especificando el nombre con el que aparece en Agregar o quitar programas. Por ejemplo, supongamos que queremos la versión de MSXML 6.0 Parser:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSoftware = objWMIService.ExecQuery _
        ("Select * from Win32_Product WHERE Name = 'MSXML 6.0 Parser'")
    
    For Each objSoftware in colSoftware
        WScript.Echo "Nombre " & objSoftware.Name
        WScript.Echo "Etiqueta: " & objSoftware.Caption
        WScript.Echo "Descripción: " & objSoftware.Description
        WScript.Echo "Fabricante " & objSoftware.Vendor
        WScript.Echo "Versión " & objSoftware.Version
    Next

    Podrías incluso crear un script que recibiera como parámetros los nombres del equipo a consultar y el nombre del software a consultar:

    strComputer = WScript.Arguments(0)
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSoftware = objWMIService.ExecQuery _
        ("Select * from Win32_Product WHERE Name = '" & Wscript.Arguments(1) & "'")
    
    For Each objSoftware in colSoftware
        WScript.Echo "Nombre " & objSoftware.Name
        WScript.Echo "Etiqueta: " & objSoftware.Caption
        WScript.Echo "Descripción: " & objSoftware.Description
        WScript.Echo "Fabricante " & objSoftware.Vendor
        WScript.Echo "Versión " & objSoftware.Version
    Next

    Vamos a ver ahora cómo se haría esto por PowerShell ¡muchísimo más breve!. Para listar todo el software instalado:

    PS Z:>Get-WmiObject Win32_Product

    Para ver la versión de un software en concreto:

    PS Z:>Get-WmiObject Win32_Product -Filter "Name = 'MSXML 4.0 SP2 (KB954430)'"

    Por último indicarte que no siempre el software ha sido instalado a partir de un paquete de Windows Installer. En este caso no existe una metodología estandarizada, pues dependerá del propio software el cómo obtener esta versión, ya sea consultando la propiedad Version de su fichero ejecutable, invocándole con algún modificador, mirando si tiene una entrada en el registro que lo diga, etc.

     


    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, 13 de abril de 2010 11:02
    Moderador
  • porfavor podria alguien ayudarme!!!!!!!!!

    necesito un script para saver la version de un programa en especifico

    espero su pronta respuesta oki.....


    Abre la carpeta del programa en:

    C/ Archivos de programa/ y abres la carpeta del programa, me refiero en donde estan todos los archivos de este, luego, en la barra superior en donde dice:

    Nombre, Tamaño, tipo; en esa barra das click derecho, se desplegará una lista de lo que quieres agregar y por supuesto agregas la que dice versión del archivo y listo..........

    • Propuesto como respuesta Carlicho sábado, 1 de enero de 2011 5:58
    sábado, 1 de enero de 2011 5:58