set-executionpolicy remotesigned
Get-WuaHistory | Sort-Object Date | Format-Table -Property * -AutoSize | Out-String -Width 4096
Get-Host | Select-Object Versionmême si le dernier framework .NET 4.* est installé, du coup impossible d’accéder à certaines fonctions comme
[string]::IsNullOrWhiteSpace($SomeString)2 solutions:
# PowerShell v2.0 compatible version of [string]::IsNullOrWhitespace. function StringIsNullOrWhitespace([string] $string) { if ($string -ne $null) { $string = $string.Trim() } return [string]::IsNullOrEmpty($string) }
Singer la GUI de WUpdate (date, status, numéro, description, url) avec un tri par date et limiter la sortie, export en texte
# conversion codes wua function Convert-WuaResultCodeToName { param( [Parameter(Mandatory=$true)] [int] $ResultCode ) $Result = $ResultCode switch($ResultCode) { 0 { $Result = "Non débutée" } 1 { $Result = "En cours" } 2 { $Result = "Réussite" } 3 { $Result = "Réussite avec des erreurs" } 4 { $Result = "Echec" } 5 { $Result = "Avortée" } } return $Result } # listing function lister-MAJ { # test paramètre param( [Parameter(Mandatory=$false)] [int] $quantite ) $wu = new-object -com "Microsoft.Update.Searcher" If ($quantite -eq 0) { # si absence de paramètre, l'enmble des MAJ $totalupdates = $wu.GetTotalHistoryCount() } else { $totalupdates = $quantite } $all = $wu.QueryHistory(0,$totalupdates) # Define a new array to gather output $OutputCollection= @() Foreach ($update in $all) { $date = $update.date $title = $update.title $state = Convert-WuaResultCodeToName -ResultCode $update.resultcode # KB + n'importe quel nombre de digit $Regex = "KB\d+" $KB = $title | Select-String -Pattern $regex | Select-Object { $_.Matches } $output = New-Object -TypeName PSobject $output | add-member NoteProperty "Date" -value $date $output | add-member NoteProperty "Title" -value $title $output | add-member NoteProperty "Etat" -value $state $output | add-member NoteProperty "HotFixID" -value $KB.' $_.Matches '.Value $OutputCollection += $output } return $OutputCollection | Sort-Object Date | Format-Table -AutoSize | Out-String -Width 4096 } # prend en compte 1er argument passé au script lister-MAJ -quantite $args[0]Exemple de sortie:
p> lister_maj.ps1 Date Title Etat HotFixID ---- ----- ---- --------- 30/12/1899 00:00:00 Non débutée 30/12/1899 00:00:00 Non débutée 30/12/1899 00:00:00 Non débutée 20/03/2019 13:05:51 2018-04 Mise à jour cumulative pour Windows 10 Version 1607 pour les systèmes x64 (KB4093120) Avortée KB4093120 20/03/2019 14:00:30 Mise à jour pour Windows 10 Version 1607 pour ordinateurs à processeur x64 (KB4049411) Avortée KB4049411 20/03/2019 14:09:56 Update for Windows 10 Version 1607 for x64-based Systems (KB4480730) Avortée KB4480730 20/03/2019 15:24:52 Mise à jour pour Windows 10 pour ordinateurs à processeur x64 (KB4056254) Réussite KB4056254 20/03/2019 15:25:21 Mise à jour pour Windows 10 Version 1607 pour ordinateurs à processeur x64 (KB4049411) Réussite KB4049411 20/03/2019 15:25:44 Mise à jour pour Windows 10 Version 1607 pour ordinateurs à processeur x64 (KB4033631) Réussite KB4033631 20/03/2019 15:26:07 2018-05 Mise à jour pour Windows 10 Version 1607 sur systèmes x64 (KB4132216) Réussite KB4132216 20/03/2019 15:30:01 Outil de suppression de logiciels malveillants Windows x64 - mars 2019 (KB890830) Réussite KB890830 20/03/2019 15:30:15 Update for Windows 10 Version 1607 for x64-based Systems (KB4480730) Réussite KB4480730 20/03/2019 15:30:25 2019-03 Mise à jour pour Windows 10 Version 1607 sur systèmes x64 (KB4023057) Echec KB4023057 20/03/2019 17:04:09 2018-04 Mise à jour cumulative pour Windows 10 Version 1607 pour les systèmes x64 (KB4093120) Avortée KB4093120 20/03/2019 17:31:54 Mise à jour de sécurité pour Windows (KB4093119) Réussite KB4093119 20/03/2019 20:58:38 2018-04 Mise à jour cumulative pour Windows 10 Version 1607 pour les systèmes x64 (KB4093120) Réussite KB4093120 20/03/2019 20:59:00 2018-06 Mise à jour pour Windows 10 Version 1607 sur systèmes x64 (KB4134659) Réussite KB4134659 20/03/2019 20:59:08 2019-03 Mise à jour pour Windows 10 Version 1607 sur systèmes x64 (KB4023057) Echec KB4023057
Supprimer les applications (apps) de Windows 10 de l'image de référence (ce qui est forgé avec MDT), ce qui permettra d'éviter qu'elle se réinstallent à chaque MAJ système et/ou à chaque création d'utilisateur.
# lister les app de l'utilisateur courant, trié par nom
# lister les app de tous les utilisateurs, trié par nom
# lister les app de l'image de référence
# le script qui va bien