Inventario programmi installati sui PC di un dominio

Find username Vorreste conoscere tutti i programmi installati su ogni PC del vostro dominio ma non sapete fare?

Ecco come realizzare un file txt/csv leggibile da Excel per analizzare i programmi installati.

Ecco come fare:
Create il seguente file con estensione ps1:

$IPconnectedcomputers=Get-WmiObject -class Win32_ServerConnection -computername localhost -namespace root\CIMV2| where-object {$_.computername -like "*.*.*.*"} | 
select-object computername -unique

# o in alternativa se volete controllare solo determinati PC
# $IPconnectedcomputers = @("PC129","PC179","PC120","PC144","PC37","PC182","PC002","PC156","PC20")

$TimestampReport=get-date -Format yyyyMMdd
$ReportSavePath=[environment]::getfolderpath("mydocuments")+"\Report\"+$TimestampReport
new-item $ReportSavePath -type directory -erroraction silentlycontinue

foreach($ip in $IPconnectedcomputers){

if ((test-connection $ip.computername -Count 1 -erroraction silentlycontinue).statuscode -eq 0)
 {
 #$pc=($ip.computername).Insert(0, "\\")
 $pc=[System.Net.Dns]::GetHostEntry($ip.computername).HostName
 write-host Collegamento a $pc
 gwmi win32_product -ComputerName $pc -erroraction silentlycontinue | select-object vendor,caption,version,__SERVER|Export-Csv -NoTypeInformation -force 
"$ReportSavePath\$PC.txt"
 write-host Fine connessione con $pc
 }
else
 {
 write-host Collegamento a $ip IMPOSSIBILE!
 }
}

write-host Elaborazione terminata
write-host premi un tasto per continuare...
read-host

Lanciatelo ed otterete dopo qualche minuto (dipende dal numero dei PC/servers presenti nel dominio) questo risultato:

Report PC da script

 
 
 

 

Saranno elencati tutti i vendors dei programmi ed i relativi programmi e versioni installate.
In un prossimo post spiegherò anche come disinstallare da remoto, con Powershell, i programmi invididuati.

 
N.B.

E’ necessario che gli script Powershell siano resi eseguibili (di default lo sono solo quelli firmati).
Per bypassare il problema e rendere eseguibili anche quelli non firmati lanciate Powershell come amministratore (tenete premuto Ctrl-Shift mentre cliccate sul relativo collegamento) e scrivete:

Set-ExecutionPolicy -ExecutionPolicy bypass

Lascia un commento qui

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...