PowerShellScripting

Récupérer la liste des updates Windows installées via PowerShell

Powershell est un outil formidable, cependant, il arrive que ce soit un peu plus compliqué que prévu. Aujourd’hui, j’ai eu besoin de faire une extraction de toutes les mises à jour d’un ordinateur.

Du coup, un petit coup de Powershell aurait dû faire l’affaire en une commande toute simple…. Mais non.

Initialement, la commande « Get-Hotfix » permet de récupérer toute la liste des mises à jour installées sur un ordinateur. Couplé avec la variable « -computername » on peut récupérer la liste sur un ordinateur distant. Après on peut même s’amuser à sélectionner seulement certains champs et trier le tout. Ce qui donne la chose suivante :

Get-HotFix -computername NOMDUPC | Select HotfixID,Description,InstalledOn | Sort InstalledOnfunction get-hotfix

Le souci, c’est qu’on se retrouve avec un paquet de mises à jour sans date d’installation… et c’est con, c’est ça qui m’intéresse… !

get-hosfix

Bon, le truc c’est qu’après avoir fouillé Google, je me suis rendu compte que beaucoup de monde était dans le même cas.

Mais… c’était sans compter sur un petit bout de script trouvé ici :

function get-hotfix2{
param($computername)
	#$PSBOundParameters
	Get-HotFix @PSBOundParameters |
	Select-Object description,hotfixid,installedby, @{l="InstalledOn";e={[DateTime]::Parse($_.psbase.properties["installedon"].value,$([System.Globalization.CultureInfo]::GetCultureInfo("en-US")))}}
}

En important ce bout de script, on obtient alors une fonction « Get-Hotfix2 » qui elle fonctionne correctement !

Télécharger Get-Hotfix2.ps1

On a plus qu’à importer le module, puis lancer la commande suivante :

Get-HotFix2 -computername NOMDUPC | Select HotfixID,Description,InstalledOn | Sort InstalledOnfunction

Si vous souhaitez l’exécuter sur votre ordinateur, retirer simplement « -computername NOMDUPC »

get-hosfix2

Et voilà ma liste avec les dates !

get-hosfix2_result

Et pour extraire le tout en CSV, on ajouter juste un pipe avec « Export-Csv c:\scripts\monfichier.csv »

Ce qui donne quelque chose comme ça…

Get-HotFix -computername NOMDUPC | Select HotfixID,Description,InstalledOn | Sort InstalledOnfunction | Export-Csv c:\scripts\monfichier.csv

Enjoy.

Mikaël GUILLERM

Administrateur Système et Autoentrepreneur depuis 2009 pour la société zerobug. Je partage mes connaissances, problèmes et solutions à travers articles ou tweets !

3 commentaires

  1. Bonjour,

    merci pour l’astuce.

    Sinon à quoi sert la commande get-hotfix en fin de ligne?
    Est-ce une erreur car du coup la commande ne fonctionne pas avec chez moi.

  2. Bonjour,

    Merci pour votre tutoriel

    a présent je suis entrain de chercher une commande powershell avec mes petit moyen de connaissance, qui me permettrai de récupérer,
    tous les applications dans SCCM 2012 qui ne sont pas déployer,
    et
    tous les applications qui sont déployer et sur combien de poste.

    Merci beaucoup pour votre aide

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page