
Cet article explique comment supprimer en toute sécurité un module PowerShell installé sur un ordinateur Windows. Cela peut être nécessaire pour désinstaller des modules anciens ou inutilisés, résoudre des problèmes de démarrage lent de PowerShell ou résoudre des conflits de modules.
Utilisez cette commande pour répertorier les modules PowerShell tiers installés sur un ordinateur via des référentiels enregistrés.
Obtenir-InstalledModule

Cette commande répertorie les modules PowerShell tiers installés et enregistrés via l’applet de commande Install-Module. Dans mon cas, tous les modules PS sont installés via le référentiel PSGallery.
Pour supprimer un module installé, spécifiez son nom dans la commande Uninstall-Module. Par exemple :
Nom du module de désinstallation PSWindowsUpdate
Un ordinateur peut avoir plusieurs versions du module installées. Par conséquent, cette applet de commande supprimera la version la plus récente du module ou échouera si plusieurs versions sont trouvées. Les versions disponibles du module peuvent être affichées comme suit :
Get-Module pswindowsupdate-ListAvailable

Pour désinstaller une version de module spécifique
Désinstallation-Module-Nom PSWindowsUpdate-RequiredVersion 2.2.1.4-Verbose
Supprimez toutes les versions d’un module spécifique, à l’exception de la dernière.
` $moduleName=“PSWindowsUpdate”$versions=Get-InstalledModule-Name $moduleName-AllVersions | Trier la version de l’objet par ordre décroissant
$versions | Sélectionner-Objet-Sauter 1 | ForEach-Object { Uninstall-Module-Name $moduleName-RequiredVersion $_.Version-Force } `
Supprimez toutes les versions du module :
Désinstallation-Module-Nom PSWindowsUpdate-AllVersions
L’applet de commande Invoke-Command peut être utilisée pour supprimer le module PowerShell sur un ordinateur distant :
Invoke-Command-ComputerName mun-dc01-ScriptBlock {Désinstallation-Module PSWindowsUpdate-RequiredVersion 2.2.1.2-Force-Verbose}
Lors de la désinstallation d’un module, une erreur peut apparaître indiquant que le module est en cours d’utilisation.
WARNING: The version '2.2.1.4' of module 'PSWindowsUpdate' is currently in use. Retry the operation after closing the applications.PackageManagement\Uninstall-Package : Module 'PSWindowsUpdate' is in currently in use or you don't have the required permissions.

Pour supprimer un tel module, fermez d’abord la session PowerShell dans laquelle il a été chargé (importé). Lister les modules PS chargés dans la session en cours :
Obtenir-Module
Pour décharger un module de la mémoire sans fermer la console PS actuelle, exécutez la commande suivante :
Supprimer le nom du module PSWindowsUpdate

Essayez à nouveau de supprimer le module après cela (dans certains cas, vous devez ajouter l’option-Force pour forcer la suppression du module, mais soyez prudent, car cela peut rompre les dépendances des autres modules) :
Désinstallation-Module-Nom PSWindowsUpdate-Force
Si le module que vous souhaitez désinstaller se charge automatiquement lorsque vous ouvrez une session PowerShell, vous pouvez contourner cela en lançant la console PowerShell sans charger vos fichiers de profil PS1 :
Powershell.exe-NoProfile-Command "Désinstallation-Module ImportExcel"
La liste complète de tous les modules PowerShell disponibles sur un ordinateur (y compris ceux installés via le référentiel et ceux installés manuellement) peut être affichée comme suit :
Get-Module-ListAvailable|sélectionnez le nom, la version, le chemin

La colonne Chemin indique où se trouvent les fichiers du module. Dans Windows PowerShell, vous pouvez utiliser (importer) des modules qui ont été installés (copiés) dans les répertoires suivants :
C:\Users\%username%\Documents\WindowsPowerShell\ModulesC:\Program Files\WindowsPowerShell\ModulesC:\Windows\system32\WindowsPowerShell\v1.0\Modules
Vous pouvez trouver cette liste de chemins dans la variable d’environnement $env:PSModulePath :

Dans PowerShell Core 7.x, la variable $env:PSModulePath inclut les chemins supplémentaires suivants :
C:\program files\windowsapps\microsoft.powershell_7.5.2.0_x64__8wekyb3d8bbwe\ModulesC:\Program Files\PowerShell\ModulesC:\program files\powershell\7\Modules

Les fichiers résiduels peuvent rester dans le répertoire du module après la désinstallation. Ces fichiers doivent être supprimés manuellement. Ce script PS, par exemple, désinstallera un module et effacera le contenu de son dossier si le dossier n’est pas vide.
` $Module=Get-Module ImportExcel-ListAvailable
Désinstallation du module $Module.Name-verbose
Remove-Item $Module.ModuleBase-Recurse-Force `
*️⃣ Lien source :
Problèmes de démarrage lent de PowerShell, PSWindowsUpdate, Invoke-Command, installé manuellement,