Modules supplémentaires Il est possible d'ajouter des fonctionnalités à Powershell à l'aide de modules supplémentaires. Certains modules sont inclus avec des fonctionnalités avancées de Windows, d'autres sont disponibles sur Le PowerShell Gallery (https://www.powershellgallery.com/) Mises à jour Windows Installation Le module "PSWindowsUpdate" permet de facilement gérer, automatiser et déclencher à distance des tâches en lien avec les mises à jour Windows. L'installation du module se déroule comme suit et doit être effectuée dans un terminal Powershell exécuté en tant qu'administrateur. PS C:\WINDOWS\system32> Install-Module PSWindowsUpdate Le fournisseur NuGet est requis pour continuer PowerShellGet requiert le fournisseur NuGet, version 2.8.5.201 ou ultérieure, pour interagir avec les référentiels NuGet. Le fournisseur NuGet doit être disponible dans « C:\Program Files\PackageManagement\ProviderAssemblies » ou « C:\Users\Info\AppData\Local\PackageManagement\ProviderAssemblies ». Vous pouvez également installer le fournisseur NuGet en exécutant la commande « Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force ». Voulez-vous que PowerShellGet installe et importe le fournisseur NuGet maintenant ? [O] Oui [N] Non [S] Suspendre [?] Aide (la valeur par défaut est « O ») : O Référentiel non approuvé Vous installez les modules à partir d'un référentiel non approuvé. Si vous approuvez ce référentiel, modifiez sa valeur InstallationPolicy en exécutant l'applet de commande Set-PSRepository. Voulez-vous vraiment installer les modules à partir de PSGallery ? [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « N ») : T PS C:\WINDOWS\system32> Une fois installé, le module peut être importé et sera prêt à l'utilisation à l'aide de la commande suivante : #Permettre l'exécution de scripts Set-ExecutionPolicy Unrestricted #Importation du module installé Import-Module PSWindowsUpdate Utilisation Toutes les commandes supportent l'argument "-ComputerName" pour exécuter ces actions sur un ordinateur distant. Si l'argument n'est pas mentionné, les actions seront entreprise sur la machine exécutant la commande. Get-WindowsUpdate La commande Get-WindowsUpdate permet de rechercher des mises à jour Windows disponibles de façon granulaire ou globale. Sans paramètres, elle cherchera toutes les mises à jour disponible. Dans le cas suivante, une mise à jour de pilote d'affichage est disponible. PS C:\WINDOWS\system32> Get-WindowsUpdate -Verbose COMMENTAIRES : VIDANGE-WINDOSE (2025-01-19 15:45:21): Connecting to Windows Update server. Please wait... COMMENTAIRES : Found [1] Updates in pre search criteria COMMENTAIRES : Found [1] Updates in post search criteria ComputerName Status KB Size Title ------------ ------ -- ---- ----- VIDANGE-W... ------- 24MB Broadcom Inc. - Display - 9.17.8.9 Il est ensuite possible de procéder au téléchargement sans installer la mise à jour si on mentionne le paramètre -Download PS C:\WINDOWS\system32> Get-WindowsUpdate -Download -Verbose COMMENTAIRES : VIDANGE-WINDOSE (2025-01-19 15:51:08): Connecting to Windows Update server. Please wait... COMMENTAIRES : Found [1] Updates in pre search criteria COMMENTAIRES : Found [1] Updates in post search criteria Confirmer Êtes-vous sûr de vouloir effectuer cette action ? Opération « (2025-01-19 15:51:15) Broadcom Inc. - Display - 9.17.8.9[24MB] » en cours sur la cible « VIDANGE-WINDOSE ». [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « O ») : O X ComputerName Result KB Size Title - ------------ ------ -- ---- ----- 1 VIDANGE-W... Accepted 24MB Broadcom Inc. - Display - 9.17.8.9 COMMENTAIRES : Accepted [1] Updates ready to Download 2 VIDANGE-W... Downloaded 24MB Broadcom Inc. - Display - 9.17.8.9 COMMENTAIRES : Downloaded [1] Updates ready to Install On peut ensuite observer que le statut de la mise à jour a changé et qu'elle indique maintenant "D" pour indiquer qu'elle est téléchargée. PS C:\WINDOWS\system32> Get-WindowsUpdate -Verbose COMMENTAIRES : VIDANGE-WINDOSE (2025-01-19 15:51:53): Connecting to Windows Update server. Please wait... COMMENTAIRES : Found [1] Updates in pre search criteria COMMENTAIRES : Found [1] Updates in post search criteria ComputerName Status KB Size Title ------------ ------ -- ---- ----- VIDANGE-W... -D----- 24MB Broadcom Inc. - Display - 9.17.8.9 Il est maintenant possible de déclencher l'installation de la mise à jour avec le paramètre -Install PS C:\WINDOWS\system32> Get-WindowsUpdate -Install -Verbose COMMENTAIRES : VIDANGE-WINDOSE (2025-01-19 15:55:03): Connecting to Windows Update server. Please wait... COMMENTAIRES : Found [1] Updates in pre search criteria COMMENTAIRES : Found [1] Updates in post search criteria Confirmer Êtes-vous sûr de vouloir effectuer cette action ? Opération « (2025-01-19 15:55:09) Broadcom Inc. - Display - 9.17.8.9[24MB] » en cours sur la cible « VIDANGE-WINDOSE ». [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « O ») : T X ComputerName Result KB Size Title - ------------ ------ -- ---- ----- 1 VIDANGE-W... Accepted 24MB Broadcom Inc. - Display - 9.17.8.9 COMMENTAIRES : Accepted [1] Updates ready to Download 2 VIDANGE-W... Downloaded 24MB Broadcom Inc. - Display - 9.17.8.9 COMMENTAIRES : Downloaded [1] Updates ready to Install 3 VIDANGE-W... Installed 24MB Broadcom Inc. - Display - 9.17.8.9 COMMENTAIRES : Installed [1] Updates Get-WUHistory La commande Get-WUHistory permet de consulter l'historique des mises à jour Windows installées. Le paramètre -MaxDate permet d'établir une date limite à partir de laquelle les résultats affichés s'arrêteront. PS C:\WINDOWS\system32> Get-WUHistory ComputerName Operationname Result Date Title ------------ ------------- ------ ---- ----- VIDANGE-W... Installation Succeeded 2025-01-19 15:55:22 Broadcom Inc. - Display - 9.17.8.9 VIDANGE-W... Installation Succeeded 2025-01-19 15:37:32 Mise à jour de la sélection disjointe pour Microsoft Defender ... VIDANGE-W... Installation Succeeded 2025-01-19 13:40:24 2025-01 Mise à jour cumulative pour Windows 11 Version 24H2 po... VIDANGE-W... Installation Succeeded 2025-01-19 13:24:43 2025-01 Mise à jour cumulative pour .NET Framework 3.5 pour et... VIDANGE-W... Installation Succeeded 2025-01-19 13:23:14 Outil de suppression de logiciels malveillants Windows x64 - v... VIDANGE-W... Installation Succeeded 2025-01-19 13:15:38 Mise à jour de la sélection disjointe pour Microsoft Defender ... VIDANGE-W... Installation Succeeded 2025-01-07 20:10:45 Mise à jour pour Microsoft Defender Antivirus plateforme anti-... VIDANGE-W... Installation Succeeded 2025-01-07 19:20:46 2024-12 Mise à jour cumulative pour Windows 11 Version 24H2 po... VIDANGE-W... Installation Succeeded 2025-01-07 18:58:18 2024-11 Mise à jour cumulative pour .NET Framework 3.5 pour et... VIDANGE-W... Installation Succeeded 2025-01-07 18:55:23 Mise à jour de la sélection disjointe pour Microsoft Defender ... VIDANGE-W... Installation Succeeded 2025-01-07 18:54:32 Outil de suppression de logiciels malveillants Windows x64 - v... VIDANGE-W... Installation Succeeded 2025-01-07 18:51:58 Mise à jour pour Windows Security platform - KB5007651 (versio... VIDANGE-W... Installation Succeeded 2025-01-07 18:32:59 Broadcom Inc. - System - 9.8.18.1 VIDANGE-W... Installation Succeeded 2025-01-07 18:27:25 2024-11 Mise à jour pour Windows 11 Version 24H2 sur systèmes ... Remove-WindowsUpdate Vous avez effectué une mise à jour et quelque chose dans votre système a cassé? Pas de panique, vous pouvez désinstaller une mise à jour avec la commande "Remove-WindowsUpdate"! Dans l'exemple suivant, nous désinstallerons une mise à jour pour la plateforme .NET 3.5 : PS C:\WINDOWS\system32> Get-WindowsUpdate -IsInstalled ComputerName Status KB Size Title ------------ ------ -- ---- ----- VIDANGE-W... -DI---- KB4052623 5MB Mise à jour pour la plateforme de logiciels anti-programme malveillant de W... VIDANGE-W... -DI---- KB4052623 13MB Mise à jour pour Microsoft Defender Antivirus plateforme anti-programme mal... VIDANGE-W... -DI---- KB5007651 38MB Mise à jour pour Windows Security platform - KB5007651 (version 10.0.27703.... VIDANGE-W... -DI---- KB890830 76MB Outil de suppression de logiciels malveillants Windows x64 - v5.131 (KB890830) VIDANGE-W... -DI---- KB2267602 1GB Mise à jour de la sélection disjointe pour Microsoft Defender Antivirus – 2... VIDANGE-W... -DI---- KB5049622 142MB 2025-01 Mise à jour cumulative pour .NET Framework 3.5 pour et 4.8.1 pour W... VIDANGE-W... -DI---- KB5050009 86GB 2025-01 Mise à jour cumulative pour Windows 11 Version 24H2 pour les systèm... PS C:\WINDOWS\system32> Remove-WindowsUpdate -KBArticleID KB5049622 Confirmer Êtes-vous sûr de vouloir effectuer cette action ? Opération « (2025-01-19 16:23:30) Remove (WUApi) Windows Update: 2025-01 Mise à jour cumulative pour .NET Framework 3.5 pour et 4.8.1 pour Windows 11, version 24H2 pour les systèmes x64 (KB5049622) » en cours sur la cible « VIDANGE-WINDOSE ». [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « O ») : O Hide-WindowsUpdate La commande Hide-WindowsUpdate permet de masquer certaines mises à jour pour éviter leur installation. Dans l'exemple suivant, nous masquerons une mise à jour de Windows Defender : PS C:\WINDOWS\system32> Hide-WindowsUpdate -KBArticleID KB2267602 Confirmer Êtes-vous sûr de vouloir effectuer cette action ? Opération « (2025-01-19 16:21:07) Hide Mise à jour de la sélection disjointe pour Microsoft Defender Antivirus – 2267602 Ko (version 1.421.1442.0) – Canal actuel (large)[1GB] » en cours sur la cible « VIDANGE-WINDOSE ». [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « O ») : T ComputerName Status KB Size Title ------------ ------ -- ---- ----- VIDANGE-W... ---H-- KB2267602 1GB Mise à jour de la sélection disjointe pour Microsoft Defender Antivirus – 2... Le statut "H" indique que la mise à jour est masquée et ne sera pas installée. Winget Winget est un module permettant l'installation automatisée d'applications disponibles dans le répertoire logiciel https://winget.run/ . Il est à noter que la majorité des applications seront installées dans le %AppData% de l'utilisateur installant un logiciel. Ces logiciels sont donc unique à chaque utilisateur impliquant que si 20 utilisateurs du poste de travail désirent la même application, elle sera installée en 20 copies sur le poste. On réfère à ce type d'installation à "per-user" ou par utilisateur. La majorité des gestionnaires de logiciels du genre pour Windows fonctionnent de cette façon, l'avantage étant qu'un utilisateur n'a pas besoin de droits d'administrateur pour installer ces logiciels. Cette méthode peut être une belle façon d'automatiser le déploiement logiciel sur un ordinateur personnel à un seul utilisateur puisqu'une simple tâche planifiée exécutant "winget update" et "winget upgrade --all" met à jour tous les logiciels pour l'utilisateur. Il peut être installé en tant que module Powershell de la façon suivante (en tant qu'administrateur) : PS C:\WINDOWS\system32> Install-Module Microsoft.WinGet.Client Le fournisseur NuGet est requis pour continuer PowerShellGet requiert le fournisseur NuGet, version 2.8.5.201 ou ultérieure, pour interagir avec les référentiels NuGet. Le fournisseur NuGet doit être disponible dans « C:\Program Files\PackageManagement\ProviderAssemblies » ou « C:\Users\Info\AppData\Local\PackageManagement\ProviderAssemblies ». Vous pouvez également installer le fournisseur NuGet en exécutant la commande « Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force ». Voulez-vous que PowerShellGet installe et importe le fournisseur NuGet maintenant ? [O] Oui [N] Non [S] Suspendre [?] Aide (la valeur par défaut est « O ») : O Référentiel non approuvé Vous installez les modules à partir d'un référentiel non approuvé. Si vous approuvez ce référentiel, modifiez sa valeur InstallationPolicy en exécutant l'applet de commande Set-PSRepository. Voulez-vous vraiment installer les modules à partir de PSGallery ? [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « N ») : T PS C:\WINDOWS\system32> À sa première utilisation, vous devrez accepter les termes et conditions du module comme suit. La commande "update" au même titre que pour "apt" sous Ubuntu et Debian vérifie les mises à jour disponibles et la commande "upgrade --all" permet d'appliquer les mises à jour disponibles. Certaines mises à jour seront silencieuses en arrière plan et d'autres afficheront une fenêtre de progression mais tout sera toujours automatisé. PS C:\WINDOWS\system32> winget update The `msstore` source requires that you view the following agreements before using. Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US"). Do you agree to all the source agreements terms? [Y] Yes [N] No: Y Name Id Version Available Source ----------------------------------------------------------------------------------------------------------------------- Microsoft Visual C++ 2015-2022 Redistribut… Microsoft.VCRedist.2015+.x86 14.36.32532.0 14.42.34433.0 winget Microsoft Visual C++ 2015-2022 Redistribut… Microsoft.VCRedist.2015+.x64 14.36.32532.0 14.42.34433.0 winget Microsoft OneDrive Microsoft.OneDrive 24.226.1110.0004 24.244.1204.0003 winget Microsoft Teams Microsoft.Teams 24295.605.3225.8804 24335.208.3315.1951 winget App Installer Microsoft.AppInstaller 1.24.25199.0 1.24.25200.0 winget Power Automate Microsoft.DevHome 0.0.0.0 0.1901.687.0 winget 6 upgrades available. PS C:\WINDOWS\system32> winget upgrade --all Name Id Version Available Source ----------------------------------------------------------------------------------------------------------------------- Microsoft Visual C++ 2015-2022 Redistribut… Microsoft.VCRedist.2015+.x86 14.36.32532.0 14.42.34433.0 winget Microsoft Visual C++ 2015-2022 Redistribut… Microsoft.VCRedist.2015+.x64 14.36.32532.0 14.42.34433.0 winget Microsoft OneDrive Microsoft.OneDrive 24.226.1110.0004 24.244.1204.0003 winget Microsoft Teams Microsoft.Teams 24295.605.3225.8804 24335.208.3315.1951 winget App Installer Microsoft.AppInstaller 1.24.25199.0 1.24.25200.0 winget Power Automate Microsoft.DevHome 0.0.0.0 0.1901.687.0 winget 6 upgrades available. Installing dependencies: This package requires the following dependencies: - Packages Microsoft.VCLibs.Desktop.14 [>= 14.0.33728.0] Microsoft.UI.Xaml.2.8 [>= 8.2310.30001.0] Microsoft.WindowsAppRuntime.1.5 (1/6) Found Microsoft Visual C++ 2015-2022 Redistributable (x86) [Microsoft.VCRedist.2015+.x86] Version 14.42.34433.0 Starting package install... Successfully installed #[...plein de barres de chargement] La commande "winget --help" vous aidera à trouver les arguments nécessaires à l'utilisation du module : PS C:\WINDOWS\system32> winget --help Gestionnaire de package Windows v1.9.25200 Copyright (c) Microsoft Corporation. Tous droits réservés. L’utilitaire de ligne de commande winget permet d’installer des applications et d’autres packages à partir de la ligne de commande. Utilisation : winget [] [] Les commandes suivantes sont disponibles : install Installe le package donné show Affiche des informations sur un package source Gérer les sources des packages search Rechercher et afficher des informations de base sur les packages list Afficher les packages installés upgrade Affiche et effectue les mises à niveau disponibles. uninstall Désinstallation du paquet donné hash Assistant pour le hachage des fichiers d’installation validate Valide un fichier manifeste settings Ouvrir les paramètres ou définir les paramètres d’administrateur features Affiche le statut des fonctionnalités expérimentales export Exporte une liste des packages installés import Installe tous les packages dans un fichier pin Gérer les broches de package configure Configure le système dans un état souhaité download Télécharge le programme d’installation à partir d’un package donné repair Répare le package sélectionné La commande "winget search [application]" vous permettrait de vérifier si une application est disponible sur leur répertoire. Dans l'exemple suivant,  PS C:\WINDOWS\system32> winget search VSCode Nom ID Version Correspondance Source ----------------------------------------------------------------------------------------------------------------------- Microsoft Visual Studio Code Microsoft.VisualStudioCode 1.96.4 Moniker: vscode winget Codium Alex313031.Codium 1.89.1.24132 Tag: vscode winget TheiaBlueprint EclipseFoundation.TheiaBlueprint 1.44.0 Tag: vscode winget TheiaIDE EclipseFoundation.TheiaIDE 1.54.0 Tag: vscode winget Huawei QuickApp IDE Huawei.QuickAppIde 14.0.1 Tag: vscode winget DevPod LoftLabs.DevPod 0.6.9 Tag: vscode winget VSCodium VSCodium.VSCodium 1.96.4.25017 Tag: vscode winget VSCodium Insiders VSCodium.VSCodium.Insiders 1.97.0.24352 Tag: vscode winget vscli michidk.vscli 1.1.0 Tag: vscode winget Upgit pluveto.Upgit 0.2.18 Tag: vscode winget MrCode zokugun.MrCode 1.82.0.23253 Tag: vscode winget Microsoft Visual Studio Code CLI Microsoft.VisualStudioCode.CLI 1.96.4 Moniker: vscode-cli winget Microsoft Visual Studio Code Insi… Microsoft.VisualStudioCode.Insiders 1.97.0 Moniker: vscode-insiders winget Microsoft Visual Studio Code Insi… Microsoft.VisualStudioCode.Insider… 1.97.0 Moniker: vscode-insiders-cli winget markdown-oxide FelixZeller.markdown-oxide 0.23.1 Tag: vscode-language-support winget Connaissant maintenant l'ID de l'application recherchée, nous pouvons maintenant l'installer! PS C:\WINDOWS\system32> winget install Microsoft.VisualStudioCode Trouvé Microsoft Visual Studio Code [Microsoft.VisualStudioCode] Version 1.96.4 La licence d’utilisation de cette application vous est octroyée par son propriétaire. Microsoft n’est pas responsable des paquets tiers et n’accorde pas de licences à ceux-ci. Téléchargement en cours https://vscode.download.prss.microsoft.com/dbazure/download/stable/cd4ee3b1c348a13bafd8f9ad8060705f6d4b9cba/VSCodeUserSetup-x64-1.96.4.exe ██████████████████████████████ 100 MB / 100 MB Le code de hachage de l’installation a été vérifié avec succès Démarrage du package d’installation... Merci de patienter. Installé correctement # Redémarrage du shell pour recharger les variables d'environnement PS C:\Users\Info> (Get-Command code).path C:\Users\Info\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd La commande "winget list" permet de voir l'ensemble des logiciels et indiquera lesquelles ont été installées et sont gérées par winget. PS C:\Users\Info> winget list Nom ID Version Source ----------------------------------------------------------------------------------------------------------------------- VMware Tools ARP\Machine\X64\{6070BE95-B84D-40FE-8ABD-C70… 12.4.5.23787635 Microsoft Edge Microsoft.Edge 132.0.2957.115 winget Microsoft Visual C++ 2015-2022 Redistributab… Microsoft.VCRedist.2015+.x64 14.42.34433.0 winget Microsoft Visual C++ 2015-2022 Redistributab… Microsoft.VCRedist.2015+.x86 14.42.34433.0 winget Microsoft OneDrive Microsoft.OneDrive 24.244.1204.0003 winget Microsoft Visual Studio Code (User) Microsoft.VisualStudioCode 1.96.4 winget Microsoft Clipchamp MSIX\Clipchamp.Clipchamp_3.1.11920.0_neutral… 3.1.11920.0 Microsoft Teams Microsoft.Teams 24335.208.3315.1951 winget AV1 Video Extension MSIX\Microsoft.AV1VideoExtension_1.3.4.0_x64… 1.3.4.0 AVC Encoder Video Extension MSIX\Microsoft.AVCEncoderVideoExtension_1.1.… 1.1.3.0 Améliorations de la compatibilité des applic… MSIX\Microsoft.ApplicationCompatibilityEnhan… 1.2411.16.0 Actualités MSIX\Microsoft.BingNews_4.55.62231.0_x64__8w… 4.55.62231.0 Recherche Web de Microsoft Bing MSIX\Microsoft.BingSearch_1.1.3.0_x64__8weky… 1.1.3.0 MSN Météo MSIX\Microsoft.BingWeather_4.54.63007.0_x64_… 4.54.63007.0 Copilot MSIX\Microsoft.Copilot_1.24122.48.0_x64__8we… 1.24122.48.0 Installeur d'applications Microsoft.AppInstaller 1.24.25200.0 winget