Encontrar la versión de un ejecutable y realizar una acción | PowerShell

Un amigo y colega, necesitaba realizar un script que le permitiera detectar si un archivo ejecutable tenían cierta versión y en caso que no fuera así realizar una acción, por lo que me solicito si podía revisarle un script mediante PowerShell.

Por lo que en unas pocas líneas de código pudimos cumplir el objetivo.

El script lo que hace es detectar la arquitectura del sistema operativo mediante WMI (Como mejor práctica debería ser actualizado a CIM), y verifica mediante la propiedad VersionInfo.FileVersion, la versión del ejecutable. Luego, compara ese string, con el especificado en la variable $sapNuevo y ejecuta un bat en caso de no ser igual.

[string]$sapNuevo = "7400.1.3.1103"


if ((Get-WmiObject -Class Win32_ComputerSystem).SystemType -match ‘(x64)’) {
    [string]$sapClient = (Get-Item "C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe").VersionInfo.FileVersion 
    }
else {
    [string]$sapClient = (Get-Item "C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe").VersionInfo.FileVersion
}

if ($sapClient.CompareTo($sapNuevo)) {
    Start-Process -FilePath "C:\temp\pruebabat.bat" -WindowStyle Hidden
}

En caso de que necesiten realizar una acción similar, lo único que deben hacer es copiar el script y modificar:

  • La variable de la versión a comparar
  • Los path donde se encuentra el ejecutable
  • Tener en cuenta que no es para ejecutar en forma remota, puede distribuirse por GPO

Saludos,

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: