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 [<commande>] [<options>]
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