Windows 11/10: Apps mit PowerShell-PackageManagement installieren

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

Windows 11/10: Apps mit PowerShell-PackageManagement installieren

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:

  1. Drücken Sie Windows-Taste + X.
  2. Wählen Sie Terminal (Administrator).
  3. Bestätigen Sie die Abfrage der Benutzerkontensteuerung mit Ja.
  4. 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:

  1. Drücken Sie Windows-Taste + X.
  2. Klicken Sie auf Windows PowerShell (Administrator).
  3. 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:

  1. Öffnen Sie PowerShell als Administrator.
  2. Geben Sie folgenden Befehl ein:
Install-PackageProvider -Name ChocolateyGet -Force
  1. Laden Sie den Anbieter in die aktuelle Sitzung:
Import-PackageProvider -Name ChocolateyGet
  1. 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:

  1. Öffnen Sie den Editor (Notepad).
  2. 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
  1. Speichern Sie die Datei als Apps-installieren.ps1, zum Beispiel auf dem Desktop.
  2. Öffnen Sie PowerShell als Administrator.
  3. 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

  1. Öffnen Sie PowerShell als Administrator.
  2. Installieren Sie das Modul:
Install-Module -Name Microsoft.WinGet.Client -Force
  1. 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:

  1. Installieren Sie den Anbieter erneut: Install-PackageProvider -Name ChocolateyGet -Force
  2. Laden Sie ihn anschließend: Import-PackageProvider -Name ChocolateyGet
  3. 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.

Mario
Mario

Mario schreibt bei tippsling.de über Technik, Spiele, DIY und digitale Alltagsthemen. Sein Schwerpunkt liegt auf verständlichen Anleitungen zu Windows, Apps und praktischen Problemlösungen – ergänzt um Ratgeber zu Gaming- und DIY-Themen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert