Mit PowerShell-PackageManagement installieren Sie Apps unter Windows 11 und 10 direkt per Befehl – so finden und installieren Sie Pakete schnell.

Mit PowerShell-PackageManagement installieren Sie Apps unter Windows 11 und Windows 10 direkt per Befehl. Zuerst öffnen Sie PowerShell als Administrator. Anschließend richten Sie einen Paketanbieter wie ChocolateyGet ein. Danach suchen Sie Programme mit Find-Package und installieren sie mit Install-Package.
Außerdem zeigt Get-Package alle installierten Apps an. Zusätzlich erfahren Sie hier, wie Sie Fehler beheben, Quellen verwalten und welche Alternative mit WinGet heute empfehlenswert ist.
Was ist PowerShell-PackageManagement?
PackageManagement ist ein Modul, das in Windows PowerShell fest eingebaut ist. Früher hieß es OneGet. Deshalb finden Sie in vielen älteren Anleitungen noch diesen Namen.
Im Kern ist PackageManagement ein Paketmanager-Manager. Es installiert also selbst keine Software, sondern steuert andere Paketquellen. Zum Beispiel greift es auf Chocolatey, NuGet oder den PowerShell-Katalog zu.
Der große Vorteil: Sie nutzen immer dieselben Befehle, egal aus welcher Quelle ein Programm stammt. Dadurch müssen Sie sich nur wenige Cmdlets merken.
Die wichtigsten Begriffe
- Package (Paket): Ein Programm oder eine Komponente, die Sie installieren können.
- Provider (Anbieter): Das Bindeglied zwischen PackageManagement und einer Paketquelle, zum Beispiel ChocolateyGet oder NuGet.
- Source (Quelle): Der Ort, an dem die Pakete liegen, etwa ein Online-Repository.
- Cmdlet: Ein PowerShell-Befehl wie Install-Package.
Welche Windows-Versionen werden unterstützt?
PackageManagement ist in Windows 10 und Windows 11 bereits vorinstalliert. Es gehört zu Windows PowerShell 5.1, das in beiden Systemen standardmäßig enthalten ist.
Zudem steht das Modul auch in PowerShell 7 zur Verfügung. Allerdings fehlen dort einige Anbieter, etwa für MSI-Dateien und die Liste der installierten Programme. Deshalb empfiehlt sich für die App-Installation in den meisten Fällen Windows PowerShell 5.1.
Die wichtigsten PackageManagement-Befehle im Überblick
Bevor Sie loslegen, lohnt sich ein Blick auf die zentralen Cmdlets. Außerdem können Sie sich alle verfügbaren Befehle jederzeit selbst anzeigen lassen:
Get-Command -Module PackageManagement
Die wichtigsten Befehle sind:
- Find-Package – sucht nach Programmen in den registrierten Quellen.
- Install-Package – installiert ein Programm.
- Get-Package – zeigt installierte Programme an.
- Uninstall-Package – entfernt ein Programm.
- Save-Package – speichert ein Paket lokal, ohne es zu installieren.
- Get-PackageProvider – listet die geladenen Anbieter auf.
- Find-PackageProvider – sucht nach zusätzlichen Anbietern.
- Install-PackageProvider – installiert einen neuen Anbieter.
- Import-PackageProvider – lädt einen Anbieter in die aktuelle Sitzung.
- Get-PackageSource – zeigt registrierte Paketquellen.
- Register-PackageSource – fügt eine neue Quelle hinzu.
- Unregister-PackageSource – entfernt eine Quelle.
- Set-PackageSource – ändert eine Quelle, zum Beispiel ihre Vertrauensstufe.
Zusätzlich hilft Ihnen die integrierte Hilfe weiter. Geben Sie zum Beispiel Get-Help Install-Package -Full ein, um alle Parameter zu sehen.
Vorbereitung: PowerShell richtig einrichten
Damit die Installation von Apps reibungslos klappt, sollten Sie einige Vorbereitungen treffen. Insbesondere die Rechte und die Ausführungsrichtlinie spielen dabei eine wichtige Rolle.
Schritt 1: PowerShell als Administrator öffnen
Viele Programme installieren sich systemweit. Deshalb benötigen Sie Administratorrechte.
Unter Windows 11:
- Drücken Sie Windows-Taste + X.
- Wählen Sie Terminal (Administrator).
- Bestätigen Sie die Abfrage der Benutzerkontensteuerung mit Ja.
- Prüfen Sie, ob ein Windows PowerShell-Tab geöffnet ist. Falls nicht, öffnen Sie über den Pfeil neben dem Plus-Zeichen einen neuen Tab mit Windows PowerShell.
Unter Windows 10:
- Drücken Sie Windows-Taste + X.
- Klicken Sie auf Windows PowerShell (Administrator).
- Bestätigen Sie die Abfrage mit Ja.
Alternativ suchen Sie im Startmenü nach PowerShell, klicken mit der rechten Maustaste darauf und wählen Als Administrator ausführen.
Schritt 2: PowerShell-Version prüfen
Anschließend prüfen Sie, welche Version Sie verwenden:
$PSVersionTable.PSVersion
Steht dort Major 5 und Minor 1, nutzen Sie Windows PowerShell 5.1. Das ist für diese Anleitung ideal. Zeigt die Ausgabe hingegen 7, arbeiten Sie mit PowerShell 7. In diesem Fall funktionieren die meisten Befehle ebenfalls, jedoch fehlen einige Anbieter.
Schritt 3: Ausführungsrichtlinie anpassen
Viele Anbieter bestehen aus Skripten. Standardmäßig blockiert Windows jedoch das Ausführen von Skripten. Deshalb passen Sie die Execution Policy an:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Bestätigen Sie die Nachfrage mit J (Ja). Mit RemoteSigned dürfen lokale Skripte laufen, während Skripte aus dem Internet signiert sein müssen. Somit bleibt ein sinnvolles Maß an Sicherheit erhalten.
Schritt 4: TLS 1.2 aktivieren
Ältere Installationen von Windows PowerShell 5.1 nutzen teilweise noch veraltete Verschlüsselungsprotokolle. Infolgedessen schlagen Downloads mit Fehlermeldungen fehl. Deshalb aktivieren Sie für die aktuelle Sitzung TLS 1.2:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Dieser Befehl gilt nur für das geöffnete Fenster. Wenn Sie PowerShell neu starten, müssen Sie ihn also erneut eingeben.
Schritt 5: NuGet-Anbieter und PackageManagement aktualisieren
Die mitgelieferte Version von PackageManagement ist recht alt. Daher lohnt sich ein Update. Zuerst installieren Sie den NuGet-Anbieter:
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Danach aktualisieren Sie die Module PackageManagement und PowerShellGet:
Install-Module -Name PackageManagement -Force -AllowClobber
Install-Module -Name PowerShellGet -Force -AllowClobber
Schließen Sie PowerShell anschließend und öffnen Sie es erneut als Administrator. Erst dann werden die neuen Versionen geladen.
Paketanbieter verstehen und einrichten
Ohne passenden Anbieter findet PackageManagement keine klassischen Desktop-Programme. Deshalb ist die Wahl des Providers der wichtigste Schritt.
Vorinstallierte Anbieter anzeigen
Mit folgendem Befehl sehen Sie, welche Anbieter bereits geladen sind:
Get-PackageProvider
In Windows PowerShell 5.1 erscheinen typischerweise:
- msi – installiert lokale MSI-Dateien.
- msu – installiert Windows-Updatepakete im MSU-Format.
- Programs – listet installierte Programme auf.
- PowerShellGet – installiert PowerShell-Module aus dem PowerShell-Katalog.
- NuGet – greift auf NuGet-Pakete zu, die vor allem für Entwickler gedacht sind.
Wichtig: Keiner dieser Anbieter installiert gängige Apps wie Firefox oder 7-Zip aus dem Internet. Dafür brauchen Sie einen zusätzlichen Anbieter.
Verfügbare Anbieter finden
Anschließend durchsuchen Sie den Katalog nach weiteren Anbietern:
Find-PackageProvider
Die Liste enthält unter anderem ChocolateyGet, WinGet und Chocolatier. Zudem finden Sie hier Anbieter für Docker oder spezielle Unternehmensquellen.
Empfehlung: ChocolateyGet für Desktop-Apps
Für die meisten Nutzer ist ChocolateyGet die beste Wahl. Der Anbieter greift auf das riesige Chocolatey-Repository mit mehreren Tausend Programmen zu. Laut PowerShell-Katalog liegt ChocolateyGet aktuell in Version 4.1.0 vor und baut auf Chocolatey auf, um Pakete aus dem Chocolatey-Repository und anderen NuGet-Quellen zu finden.
Ein weiterer Vorteil: Fehlt Chocolatey auf Ihrem PC, richtet ChocolateyGet es bei Bedarf automatisch ein.
So installieren Sie ChocolateyGet:
- Öffnen Sie PowerShell als Administrator.
- Geben Sie folgenden Befehl ein:
Install-PackageProvider -Name ChocolateyGet -Force
- Laden Sie den Anbieter in die aktuelle Sitzung:
Import-PackageProvider -Name ChocolateyGet
- Prüfen Sie, ob der Anbieter erscheint:
Get-PackageProvider
Taucht ChocolateyGet in der Liste auf, ist alles bereit.
Hinweis zum alten „Chocolatey“-Anbieter
In älteren Anleitungen steht häufig der Befehl Install-PackageProvider chocolatey. Dieser ursprüngliche Anbieter war jedoch nur ein Prototyp und wird seit Jahren nicht mehr gepflegt. Deshalb sollten Sie ihn nicht mehr verwenden. Nutzen Sie stattdessen ChocolateyGet oder Chocolatier.
Alternative: WinGet als PackageManagement-Anbieter
Darüber hinaus gibt es einen Anbieter namens WinGet. Er verbindet PackageManagement mit dem Windows-Paket-Manager. Der Anbieter stammt von Ethan Bergstrom und setzt neben PackageManagement auch das Modul Cobalt voraus.
Die Installation funktioniert ähnlich:
Install-PackageProvider -Name WinGet -Force
Import-PackageProvider -Name WinGet
Allerdings handelt es sich um ein Community-Projekt mit niedriger Versionsnummer. Daher eignet es sich eher zum Ausprobieren. Für den produktiven Einsatz von WinGet in PowerShell ist das offizielle Modul von Microsoft besser geeignet. Dazu später mehr.
Apps mit Find-Package suchen
Bevor Sie eine App installieren, sollten Sie den exakten Paketnamen kennen. Denn viele Programme heißen im Repository anders als im Alltag.
Einfache Suche nach einem Programm
Suchen Sie zum Beispiel nach 7-Zip:
Find-Package -Name 7zip -ProviderName ChocolateyGet
Die Ausgabe zeigt Ihnen den Namen, die Version, die Quelle und eine kurze Beschreibung. Daraus übernehmen Sie anschließend den Namen für die Installation.
Mit Platzhaltern suchen
Kennen Sie den genauen Namen nicht, nutzen Sie das Sternchen als Platzhalter:
Find-Package -Name *firefox* -ProviderName ChocolateyGet
Dadurch erhalten Sie alle Pakete, die „firefox“ im Namen tragen. Zum Beispiel erscheinen dann auch Sprachvarianten oder die ESR-Version.
Alle verfügbaren Versionen anzeigen
Möchten Sie eine bestimmte Version installieren, lassen Sie sich alle Versionen anzeigen:
Find-Package -Name vlc -ProviderName ChocolateyGet -AllVersions
Das ist besonders hilfreich, wenn eine neuere Version Probleme verursacht. In diesem Fall wählen Sie gezielt eine ältere aus.
Suchergebnisse übersichtlich darstellen
Bei vielen Treffern wird die Ausgabe schnell unübersichtlich. Deshalb können Sie die Anzeige gezielt formatieren:
Find-Package -Name *pdf* -ProviderName ChocolateyGet | Select-Object Name, Version | Sort-Object Name
So sehen Sie nur Name und Version, alphabetisch sortiert.
Apps mit Install-Package installieren
Nun folgt der eigentliche Kern: die Installation. Dabei genügt in den meisten Fällen ein einziger Befehl.
Eine einzelne App installieren
So installieren Sie zum Beispiel 7-Zip:
Install-Package -Name 7zip -ProviderName ChocolateyGet -Force
Der Parameter -Force unterdrückt Rückfragen. Ohne ihn fragt PowerShell möglicherweise, ob Sie der Quelle vertrauen. In diesem Fall bestätigen Sie mit J oder A (Ja, alle).
Nach wenigen Sekunden erscheint der Status Installed. Anschließend finden Sie die App wie gewohnt im Startmenü.
Eine bestimmte Version installieren
Benötigen Sie eine bestimmte Version, geben Sie diese mit -RequiredVersion an:
Install-Package -Name notepadplusplus -RequiredVersion 8.6.0 -ProviderName ChocolateyGet -Force
Zusätzlich können Sie mit -MinimumVersion und -MaximumVersion einen Bereich festlegen.
Mehrere Apps auf einmal installieren
Besonders praktisch ist PackageManagement, wenn Sie einen neuen PC einrichten. Dann installieren Sie gleich mehrere Programme in einem Rutsch:
Install-Package -Name 7zip, vlc, firefox, notepadplusplus -ProviderName ChocolateyGet -Force
Alternativ nutzen Sie eine Liste und eine Schleife. Das ist übersichtlicher, wenn Sie viele Programme einrichten:
$apps = @("7zip", "vlc", "firefox", "notepadplusplus", "googlechrome", "sumatrapdf")
foreach ($app in $apps) {
Install-Package -Name $app -ProviderName ChocolateyGet -Force
}
Auf diese Weise sehen Sie für jede App einzeln, ob die Installation erfolgreich war.
Ein Installationsskript für neue PCs erstellen
Noch komfortabler wird es mit einem eigenen Skript. Damit richten Sie jeden neuen Rechner in wenigen Minuten ein.
So gehen Sie vor:
- Öffnen Sie den Editor (Notepad).
- Fügen Sie folgenden Inhalt ein:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-PackageProvider -Name ChocolateyGet -Force
Import-PackageProvider -Name ChocolateyGet
$apps = @("7zip", "vlc", "firefox", "notepadplusplus", "sumatrapdf")
foreach ($app in $apps) {
Write-Host "Installiere $app ..." -ForegroundColor Cyan
Install-Package -Name $app -ProviderName ChocolateyGet -Force
}
Write-Host "Fertig!" -ForegroundColor Green
- Speichern Sie die Datei als Apps-installieren.ps1, zum Beispiel auf dem Desktop.
- Öffnen Sie PowerShell als Administrator.
- Wechseln Sie in den Ordner und starten Sie das Skript:
cd $env:USERPROFILE\Desktop
.\Apps-installieren.ps1
Ebenso können Sie das Skript auf einem USB-Stick speichern und auf beliebig vielen PCs nutzen.
Lokale MSI-Dateien installieren
Zusätzlich installiert PackageManagement auch MSI-Dateien, die bereits auf Ihrem PC liegen. Dafür nutzen Sie den vorinstallierten msi-Anbieter:
Install-Package -Name "C:\Downloads\Programm.msi" -Force
Dieser Weg funktioniert jedoch nur in Windows PowerShell 5.1. Klassische EXE-Installer unterstützt der msi-Anbieter hingegen nicht.
Windows-Updates im MSU-Format installieren
Ähnlich funktioniert es mit MSU-Dateien, also eigenständigen Windows-Updatepaketen:
Install-Package -Name "C:\Updates\Update.msu" -Force
Das ist zum Beispiel praktisch, wenn Sie ein Update manuell aus dem Microsoft Update-Katalog heruntergeladen haben.
Installierte Apps mit Get-Package anzeigen
Ein großer Vorteil von PackageManagement ist die zentrale Übersicht. Denn Get-Package zeigt nicht nur Pakete, die Sie per PowerShell installiert haben, sondern auch klassisch installierte Programme.
Alle installierten Programme auflisten
Get-Package
Die Liste kann sehr lang werden. Deshalb lohnt sich eine Filterung.
Nach Anbieter filtern
Möchten Sie nur die Apps sehen, die über ChocolateyGet installiert wurden, nutzen Sie:
Get-Package -ProviderName ChocolateyGet
Für klassische Programme verwenden Sie hingegen den Anbieter Programs:
Get-Package -ProviderName Programs
Nach einem bestimmten Programm suchen
Außerdem prüfen Sie schnell, ob ein Programm installiert ist:
Get-Package -Name *vlc*
Liste als Datei exportieren
Für eine Inventur oder einen PC-Umzug können Sie die Liste speichern:
Get-Package | Select-Object Name, Version, ProviderName | Export-Csv -Path "$env:USERPROFILE\Desktop\Programme.csv" -NoTypeInformation -Encoding UTF8
Anschließend öffnen Sie die CSV-Datei zum Beispiel in Excel oder LibreOffice Calc.
Apps aktualisieren
PackageManagement besitzt keinen eigenen Update-Befehl. Es gibt also kein „Update-Package“. Dennoch können Sie Programme auf dem neuesten Stand halten.
Variante 1: Neue Version gezielt installieren
Zuerst prüfen Sie, welche Version installiert ist und welche verfügbar ist:
Get-Package -Name vlc -ProviderName ChocolateyGet
Find-Package -Name vlc -ProviderName ChocolateyGet
Ist die gefundene Version neuer, installieren Sie sie einfach erneut:
Install-Package -Name vlc -ProviderName ChocolateyGet -Force
Dadurch wird die aktuelle Version über die alte installiert.
Variante 2: Alle Apps per Skript vergleichen
Zusätzlich können Sie alle ChocolateyGet-Pakete automatisch prüfen und aktualisieren:
Get-Package -ProviderName ChocolateyGet | ForEach-Object {
$neu = Find-Package -Name $_.Name -ProviderName ChocolateyGet
if ([version]$neu.Version -gt [version]$_.Version) {
Write-Host "Aktualisiere $($_.Name) auf $($neu.Version)" -ForegroundColor Yellow
Install-Package -Name $_.Name -ProviderName ChocolateyGet -Force
}
}
Beachten Sie jedoch: Manche Versionsnummern lassen sich nicht sauber vergleichen. In diesem Fall gibt PowerShell einen Fehler aus, und Sie aktualisieren die betroffene App manuell.
Variante 3: Direkt mit Chocolatey aktualisieren
Da ChocolateyGet im Hintergrund Chocolatey nutzt, steht Ihnen auch der Befehl choco zur Verfügung. Damit aktualisieren Sie alle Programme mit einem einzigen Befehl:
choco upgrade all -y
Das ist in der Praxis oft die schnellste Lösung.
Apps mit Uninstall-Package deinstallieren
Ebenso einfach entfernen Sie Programme wieder. Dafür nutzen Sie Uninstall-Package.
Eine App deinstallieren
Uninstall-Package -Name vlc -ProviderName ChocolateyGet -Force
Klassisch installierte Programme entfernen
Zudem können Sie Programme entfernen, die Sie gar nicht per PowerShell installiert haben. Dafür ermitteln Sie zuerst den genauen Namen:
Get-Package -ProviderName Programs, msi | Where-Object Name -like "*Zoom*"
Anschließend deinstallieren Sie das Programm:
Get-Package -Name "Zoom Workplace*" | Uninstall-Package -Force
Allerdings klappt das nicht bei jedem Programm. Manche Installer starten trotzdem ein Fenster oder benötigen eine Bestätigung. In diesem Fall entfernen Sie die App über Einstellungen > Apps > Installierte Apps (Windows 11) beziehungsweise Einstellungen > Apps > Apps & Features (Windows 10).
Pakete mit Save-Package offline speichern
Manchmal möchten Sie ein Paket herunterladen, aber noch nicht installieren. Zum Beispiel für einen PC ohne Internetzugang. Dafür eignet sich Save-Package:
Save-Package -Name 7zip -ProviderName ChocolateyGet -Path "C:\Pakete"
Das Paket landet anschließend im angegebenen Ordner. Später installieren Sie es von dort aus, indem Sie den Ordner als lokale Quelle registrieren. Wie das geht, zeigt der nächste Abschnitt.
Paketquellen verwalten
Jeder Anbieter greift auf eine oder mehrere Quellen zu. Diese können Sie anzeigen, hinzufügen und entfernen.
Registrierte Quellen anzeigen
Get-PackageSource
Die Spalte IsTrusted zeigt, ob Sie der Quelle vertrauen. Steht dort False, fragt PowerShell bei jeder Installation nach.
Einer Quelle vertrauen
Damit die Rückfragen entfallen, markieren Sie eine Quelle als vertrauenswürdig:
Set-PackageSource -Name chocolatey -ProviderName ChocolateyGet -Trusted
Tun Sie das jedoch nur bei Quellen, die Sie wirklich kennen. Denn vertrauenswürdige Quellen installieren Software ohne weitere Nachfrage.
Eine lokale Quelle hinzufügen
Für Firmen oder Offline-Szenarien richten Sie einen lokalen Ordner oder eine Netzwerkfreigabe als Quelle ein:
Register-PackageSource -Name Lokal -Location "C:\Pakete" -ProviderName ChocolateyGet -Trusted
Danach installieren Sie Pakete gezielt aus dieser Quelle:
Install-Package -Name 7zip -Source Lokal -ProviderName ChocolateyGet -Force
Die NuGet-Quelle registrieren
Häufig fehlt die offizielle NuGet-Quelle. Dann findet Find-Package -ProviderName NuGet nichts. So fügen Sie sie hinzu:
Register-PackageSource -Name nuget.org -Location https://www.nuget.org/api/v2 -ProviderName NuGet
Beachten Sie aber: NuGet enthält vor allem Entwickler-Bibliotheken, keine typischen Desktop-Apps.
Eine Quelle entfernen
Brauchen Sie eine Quelle nicht mehr, entfernen Sie sie:
Unregister-PackageSource -Name Lokal
Die offizielle Alternative: WinGet in PowerShell
PackageManagement ist zwar weiterhin in Windows enthalten. Allerdings entwickelt Microsoft es kaum noch weiter. Stattdessen setzt Microsoft auf den Windows-Paket-Manager WinGet.
Für PowerShell gibt es dazu ein offizielles Modul: Microsoft.WinGet.Client. Es arbeitet nach demselben Prinzip wie PackageManagement, nutzt jedoch das WinGet-Repository und den Microsoft Store als Quellen. Laut PowerShell-Katalog ist aktuell Version 1.29.380 erschienen, die mindestens PowerShell 5.1 voraussetzt.
Microsoft.WinGet.Client installieren
- Öffnen Sie PowerShell als Administrator.
- Installieren Sie das Modul:
Install-Module -Name Microsoft.WinGet.Client -Force
- Laden Sie es in die Sitzung:
Import-Module Microsoft.WinGet.Client
Nutzen Sie bereits PSResourceGet, funktioniert alternativ auch Install-PSResource -Name Microsoft.WinGet.Client.
Apps mit WinGet-Cmdlets verwalten
Die Befehle ähneln stark denen von PackageManagement:
Find-WinGetPackage -Query "Visual Studio Code"
Install-WinGetPackage -Id Microsoft.VisualStudioCode
Get-WinGetPackage
Update-WinGetPackage -Id Microsoft.VisualStudioCode
Uninstall-WinGetPackage -Id Microsoft.VisualStudioCode
Ein wesentlicher Vorteil: Mit Update-WinGetPackage gibt es einen echten Update-Befehl. Zudem repariert Repair-WinGetPackageManager eine beschädigte WinGet-Installation.
PackageManagement oder WinGet – was ist besser?
Beide Wege haben ihre Stärken. Die folgende Übersicht hilft bei der Entscheidung:
PackageManagement mit ChocolateyGet eignet sich, wenn:
- Sie bereits Skripte mit Install-Package nutzen.
- Sie Pakete aus dem Chocolatey-Repository benötigen.
- Sie lokale MSI- oder MSU-Dateien einheitlich installieren möchten.
- Sie mehrere Quellen über dieselben Befehle steuern wollen.
Microsoft.WinGet.Client eignet sich, wenn:
- Sie eine offiziell gepflegte Lösung von Microsoft bevorzugen.
- Sie Apps auch aus dem Microsoft Store installieren möchten.
- Sie einen echten Update-Befehl brauchen.
- Sie neue Skripte von Grund auf schreiben.
Für neue Projekte empfiehlt sich deshalb Microsoft.WinGet.Client. Bestehende Skripte mit PackageManagement funktionieren jedoch weiterhin.
Häufige Fehler und ihre Lösungen
Trotz guter Vorbereitung treten manchmal Fehler auf. Die gute Nachricht: Die meisten lassen sich schnell beheben.
„Unable to find package provider“
Diese Meldung erscheint, wenn der Anbieter fehlt oder nicht geladen ist.
Lösung:
- Installieren Sie den Anbieter erneut: Install-PackageProvider -Name ChocolateyGet -Force
- Laden Sie ihn anschließend: Import-PackageProvider -Name ChocolateyGet
- Starten Sie PowerShell neu, falls das Problem bleibt.
„No match was found for the specified search criteria“
In diesem Fall findet PowerShell das Paket nicht. Häufig ist der Name falsch geschrieben oder die Quelle fehlt.
Lösung:
- Suchen Sie mit Platzhaltern: Find-Package -Name *name* -ProviderName ChocolateyGet
- Prüfen Sie die Quellen mit Get-PackageSource.
- Aktivieren Sie TLS 1.2, wie oben beschrieben.
„Unable to download from URI“ oder Verbindungsfehler
Diese Meldung deutet auf ein Netzwerk- oder Verschlüsselungsproblem hin.
Lösung:
- Aktivieren Sie TLS 1.2: [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
- Prüfen Sie Ihre Internetverbindung.
- Kontrollieren Sie, ob eine Firewall oder ein Proxy den Zugriff blockiert.
„Die Ausführung von Skripts ist auf diesem System deaktiviert“
Hier blockiert die Ausführungsrichtlinie das Laden des Anbieters.
Lösung:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
„Access denied“ oder „Zugriff verweigert“
Diese Meldung bedeutet in der Regel, dass Ihnen Administratorrechte fehlen.
Lösung: Schließen Sie PowerShell und öffnen Sie es erneut über Als Administrator ausführen.
Anbieter fehlen in PowerShell 7
Unter PowerShell 7 zeigt Get-PackageProvider meist nur NuGet und PowerShellGet an. Die Anbieter msi, msu und Programs stehen dort nicht zur Verfügung.
Lösung: Nutzen Sie für diese Aufgaben Windows PowerShell 5.1. Sie finden es im Startmenü unter dem Namen Windows PowerShell.
Sicherheit beim Installieren per PowerShell
Wer Software per Befehl installiert, sollte einige Sicherheitsregeln beachten. Denn PowerShell führt Installationen sehr schnell und oft ohne Rückfrage aus.
- Nutzen Sie nur bekannte Quellen. Chocolatey, WinGet und der PowerShell-Katalog sind etabliert und weit verbreitet.
- Prüfen Sie Paketnamen genau. Tippfehler können im schlimmsten Fall zu einem falschen Paket führen.
- Setzen Sie -Force bewusst ein. Der Parameter überspringt Sicherheitsabfragen.
- Markieren Sie nur vertrauenswürdige Quellen als „Trusted“.
- Halten Sie Ihre Apps aktuell. Veraltete Programme sind ein häufiges Einfallstor für Schadsoftware.
- Testen Sie Skripte zuerst auf einem Test-PC. Zum Beispiel in einer virtuellen Maschine mit Hyper-V oder der Windows-Sandbox.
Außerdem zeigt Ihnen der Parameter -WhatIf, was ein Befehl tun würde, ohne ihn tatsächlich auszuführen:
Install-Package -Name vlc -ProviderName ChocolateyGet -WhatIf
Häufige Fragen zu PowerShell-PackageManagement
Ist PackageManagement in Windows 11 und Windows 10 vorinstalliert?
Ja. Das Modul gehört zu Windows PowerShell 5.1 und ist in beiden Systemen ab Werk enthalten. Allerdings ist die mitgelieferte Version recht alt. Deshalb empfiehlt sich ein Update über Install-Module -Name PackageManagement -Force.
Was ist der Unterschied zwischen PackageManagement und OneGet?
Es gibt keinen Unterschied. OneGet war der ursprüngliche Projektname. Später hat Microsoft das Modul in PackageManagement umbenannt. Die Befehle sind identisch.
Kann ich mit Install-Package auch EXE-Dateien installieren?
Nicht direkt. Der vorinstallierte Anbieter unterstützt nur MSI– und MSU-Dateien. Programme mit EXE-Installer installieren Sie stattdessen über einen Anbieter wie ChocolateyGet, der die passenden Installationsparameter bereits mitbringt.
Brauche ich Administratorrechte für Install-Package?
In den meisten Fällen ja. Denn die meisten Apps installieren sich systemweit. Daher öffnen Sie PowerShell immer über Als Administrator ausführen. Einige Anbieter unterstützen zwar Installationen nur für den aktuellen Benutzer, jedoch ist das eher die Ausnahme.
Warum findet Find-Package keine Programme?
Meist fehlt ein passender Anbieter. Standardmäßig sind nur Anbieter für MSI, MSU, Module und NuGet geladen. Installieren Sie deshalb zuerst ChocolateyGet und geben Sie bei der Suche -ProviderName ChocolateyGet an.
Wie aktualisiere ich alle Apps auf einmal?
PackageManagement selbst bietet keinen Update-Befehl. Nutzen Sie stattdessen choco upgrade all -y, wenn Sie ChocolateyGet verwenden. Alternativ aktualisieren Sie mit dem Modul Microsoft.WinGet.Client über Update-WinGetPackage.
Funktioniert PackageManagement auch in PowerShell 7?
Grundsätzlich ja. Allerdings fehlen in PowerShell 7 die Anbieter msi, msu und Programs. Für MSI-Installationen und die Übersicht klassischer Programme nutzen Sie daher besser Windows PowerShell 5.1.
Ist das Installieren von Apps per PowerShell sicher?
Ja, sofern Sie bekannte Quellen nutzen. Chocolatey und WinGet prüfen eingereichte Pakete. Dennoch sollten Sie Paketnamen genau kontrollieren und -Force bewusst einsetzen. Zusätzlich hilft -WhatIf, Befehle vorab zu testen.
Wird PackageManagement noch weiterentwickelt?
Kaum noch. Microsoft konzentriert sich inzwischen auf WinGet und PSResourceGet. Trotzdem bleibt PackageManagement in Windows enthalten, und bestehende Skripte funktionieren weiterhin.
Fazit
Mit PowerShell-PackageManagement installieren Sie Apps unter Windows 11 und Windows 10 schnell und einheitlich. Entscheidend ist dabei ein passender Anbieter wie ChocolateyGet. Anschließend genügen Find-Package, Install-Package und Get-Package für den Alltag.
Für neue Skripte lohnt sich jedoch zusätzlich ein Blick auf Microsoft.WinGet.Client. Denn das offizielle Modul bietet echte Updates und wird aktiv gepflegt.
