Ogni programma, o libreria di sistema, ha un suo numero di versione, che cambia ogni volta che lo aggiorniamo, per conoscerlo possiamo andare nei Dettagli delle Proprietà del file. Ma se non avessimo un accesso diretto al computer possiamo utilizzare PowerShell per estrarre questa informazione.

Un primo script da utilizzare, dove modificare solo il percorso del file, è questo:
$file = "C:\Program Files\Mozilla Firefox\firefox.exe"# Utilizza Get-Item per leggere la versione del file(Get-Item $file).VersionInfo.FileVersion

Il risultato non cambia usando Get-ChildItem o Get-ItemProperty al posto di Get-Item, (Get-ChildItem $file).VersionInfo.FileVersion oppure (Get-ItemProperty $file).VersionInfo.FileVersion invece di (Get-Item $file).VersionInfo.FileVersion.

Un modo leggermente diverso per leggere la versione del file è (Get-Item $file).VersionInfo.FileVersionRaw

Se invece ci serve uno script (creato da ChatGpt lo ammetto) dove poter incollare il percorso del file possiamo utilizzare questo:
# Chiede all'utente di inserire il percorso del file$file = Read-Host "Incolla qui il percorso del file (senza virgolette)"# Rimuove eventuali virgolette se presenti (comune quando si fa "Copia come percorso")$file = $file.Trim('"')# Verifica se il file esiste prima di procedereif (Test-Path $file) {(Get-Item $file).VersionInfo.FileVersion} else {Write-Host "Errore: Il file specificato non esiste." -ForegroundColor Red}

Per ottenere il percorso completo del file, senza doverlo scrivere a mano, basta cliccare con il tasto destro del mouse sopra di esso e dal menu scegliere Copia come percorso. Questo viene copiato con le virgolette incluse ma lo script si occupa anche di rimuoverle.

Altro commando che ci permette l'estrazione di numerose informazioni sul file è questo: Get-ItemProperty "C:\Program Files (x86)\TeamViewer\TeamViewer.exe" |fl -Property versioninfo

Se invece avessimo bisogno di trovare ed estrarre tutte le versioni degli eseguibili e delle librerie dll presenti in una cartella, potrebbe servirci quando aggiorniamo un programma e rimane qualcosa della vecchia versione che ne impedisce il funzionamento corretto, ho trovato questo script a cui vanno riconosciuti tutti i meriti.
In allegato all'articolo trovate la versione dello script tradotta, almeno nelle parti più importanti, le due informazioni da modificare sono le variabili $Directory, che indica la cartella da controllare, e $OutputDir, che è dove salvare i risultati del controllo.

Una volta eseguito lo script basterà consultare i due report creati per avere tutti i numeri di versione dei file Exe e Dll.
