
In diesem Artikel wird erläutert, wie Sie ein auf einem Windows-Computer installiertes PowerShell-Modul sicher entfernen. Dies kann erforderlich sein, um alte oder nicht verwendete Module zu deinstallieren, Probleme mit dem langsamen Start von PowerShell zu beheben oder Modulkonflikte zu beheben.
Verwenden Sie diesen Befehl, um PowerShell-Module von Drittanbietern aufzulisten, die über registrierte Repositorys auf einem Computer installiert sind.
„Get-InstalledModule“.

Dieser Befehl listet PowerShell-Module von Drittanbietern auf, die über das Cmdlet „Install-Module“ installiert und registriert wurden. In meinem Fall werden alle PS-Module über das PSGallery-Repository installiert.
Um ein installiertes Modul zu entfernen, geben Sie seinen Namen im Befehl Uninstall-Module an. Zum Beispiel:
Uninstall-Module-Name PSWindowsUpdate
Auf einem Computer ist möglicherweise mehr als eine Version des Moduls installiert. Daher entfernt dieses Cmdlet entweder die neueste Version des Moduls oder schlägt fehl, wenn mehrere Versionen gefunden werden. Die verfügbaren Versionen des Moduls können wie folgt angezeigt werden:
„Get-Module pswindowsupdate-ListAvailable“.

Um eine bestimmte Modulversion zu deinstallieren
Uninstall-Module-Name PSWindowsUpdate-RequiredVersion 2.2.1.4-Verbose
Entfernen Sie alle Versionen eines bestimmten Moduls außer der neuesten.
` $moduleName=“PSWindowsUpdate”$versions=Get-InstalledModule-Name $moduleName-AllVersions | Objektversion absteigend sortieren
$versionen | Objekt auswählen-überspringen 1 | ForEach-Object { Uninstall-Module-Name $moduleName-RequiredVersion $_.Version-Force } `
Entfernen Sie alle Modulversionen:
Uninstall-Module-Name PSWindowsUpdate-AllVersions
Mit dem Cmdlet Invoke-Command kann das PowerShell-Modul auf einem Remotecomputer entfernt werden:
Invoke-Command-ComputerName mun-dc01-ScriptBlock {Uninstall-Module PSWindowsUpdate-RequiredVersion 2.2.1.2-Force-Verbose}
Bei der Deinstallation eines Moduls kann eine Fehlermeldung erscheinen, die besagt, dass das Modul verwendet wird.
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.

Um ein solches Modul zu entfernen, schließen Sie zunächst die PowerShell-Sitzung, in der es geladen (importiert) wurde. Listen Sie die in der aktuellen Sitzung geladenen PS-Module auf:
„Get-Modul“.
Um ein Modul aus dem Speicher zu entladen, ohne die aktuelle PS-Konsole zu schließen, führen Sie den folgenden Befehl aus:
„Remove-Module-Name PSWindowsUpdate“.

Versuchen Sie danach erneut, das Modul zu entfernen (in manchen Fällen müssen Sie die Option „-Force“ hinzufügen, um das Entfernen des Moduls zu erzwingen, aber seien Sie vorsichtig, da dies die Abhängigkeiten anderer Module zerstören kann):
Uninstall-Module-Name PSWindowsUpdate-Force
Wenn das Modul, das Sie deinstallieren möchten, beim Öffnen einer PowerShell-Sitzung automatisch geladen wird, können Sie dies umgehen, indem Sie die PowerShell-Konsole starten, ohne Ihre PS1-Profildateien zu laden:
Powershell.exe-NoProfile-Command „Uninstall-Module ImportExcel“
Die vollständige Liste aller auf einem Computer verfügbaren PowerShell-Module (einschließlich der über das Repository installierten und der manuell installierten) kann wie folgt angezeigt werden:
Get-Module-ListAvailable|select name,version,path

In der Spalte „Pfad“ wird angezeigt, wo sich die Moduldateien befinden. In Windows PowerShell können Sie Module verwenden (importieren), die in die folgenden Verzeichnisse installiert (kopiert) wurden:
C:\Users\%username%\Documents\WindowsPowerShell\ModulesC:\Program Files\WindowsPowerShell\ModulesC:\Windows\system32\WindowsPowerShell\v1.0\Modules
Sie finden diese Pfadliste in der Umgebungsvariablen $env:PSModulePath:

In PowerShell Core 7.x enthält die Variable $env:PSModulePath die folgenden zusätzlichen Pfade:
C:\program files\windowsapps\microsoft.powershell_7.5.2.0_x64__8wekyb3d8bbwe\ModulesC:\Program Files\PowerShell\ModulesC:\program files\powershell\7\Modules

Nach der Deinstallation können Restdateien im Modulverzeichnis verbleiben. Diese Dateien müssen manuell entfernt werden. Dieses PS-Skript deinstalliert beispielsweise ein Modul und löscht den Inhalt seines Ordners, wenn der Ordner nicht leer ist.
` $Module=Get-Module ImportExcel-ListAvailable
Uninstall-Module $Module.Name-verbose
Remove-Item $Module.ModuleBase-Recurse-Force `
*️⃣ Quelllink:
PowerShell-Probleme beim langsamen Start, PSWindowsUpdate, Invoke-Command, manuell installiert,