jueves, 22 de julio de 2021

Localizar software instalado en servidores con PowerShell

Vamos as ver cómo localizar software instalado en servidores, o equipos en nuestra red, a partir de PowerShell y el uso de WMI.

Partimos de la premisa que no tenemos una herramienta más potente para estas labores de detección e inventariado como SCCM, que nos permite sacar unos informes más completos que solo el nombre de la aplicación. 

El script es el siguiente:

$list = get-content c:\listadoservidores.txt

foreach($PC in $list){

    $data = Get-WmiObject -ComputerName $PC -Class Win32_Product | sort-object Name |

    Select-Object Name | Where-Object { $_.Name -like "*Zoom*" -or $_.name -like "*McAfee*"}

    if($data){

            Write-Output "$PC tiene $($data.name) instalado" |

            out-file c:\temp\maquinasconsoft.txt -Append
    }
}

Si, es el tercer post con un bucle foreach, lo siento... Pero vamos con la explicación del funcionamiento.

Con el $list = get-content c:\listadoservidores.txt metemos en la variable $list el listado de las máquinas que queremos analizar. Otras opciones válidas serian por ejemplo, $list = 'server1','server2' o bien $list = Get-ADComputer -Filter * lo que nos permitiria directamente meter en la variable realizando la búsqueda de maquinas con filtrado directamente en AD.

Luego, desde el foreach hasta la linea del write-output tenemos la búsqueda en si. Es importante indicar que la búsqueda con el parámetro -like y los ** nos permite buscar un nombre que contenga la palabra indicada, no es necesario que sea el nombre completo. Eso si, si se meten varias aplicaciones a buscar, el script te dice si ha encontrado algo o no, pero ni especifica cual, asi que normalmente del -or hasta el } suelo eliminarlo, dejando un solo término.

Finalmente, el  out-file c:\temp\maquinasconsoft.txt -Append lo que hace es indicar en el fichero de salida "maquinasconsoft.txt" en qué maquinas ha encontrado el software instalado. En estos bucles es importante agregar el -append, porque si no, cada ejecución del bucle machaca el archivo, mostrando finalmente sólo la ultima vuelta. En cambio con -append va incorporando, sin machacar el texto previo.


No hay comentarios:

Publicar un comentario

¡Gracias por colaborar en este blog con tus comentarios! :)