Wie importiere ich eine Liste von Programmen mit Winget zur Installation?

Melden
  1. Erstellen einer Liste von Programmen
  2. Installation via PowerShell-Skript
  3. Ausführen des Skripts
  4. Fehlerbehandlung und Optimierungen
  5. Zusammenfassung

Um eine Vielzahl von Programmen mithilfe von Winget zu installieren, kann man eine Liste von Programmnamen oder Paket-IDs verwenden und diese automatisiert abarbeiten lassen. Winget ist das Paketverwaltungstool von Microsoft für Windows, das es ermöglicht, Software einfach per Kommandozeile zu installieren. Der Import einer Liste ist nicht direkt als eigener Befehl in Winget vorgesehen, jedoch können Sie dies durch das Verwenden von Batch- oder PowerShell-Skripten realisieren.

Erstellen einer Liste von Programmen

Zunächst müssen Sie eine einfache Textdatei anlegen, zum Beispiel "programme.txt", in der Sie pro Zeile den Namen oder die Paket-ID eines Programms notieren, das installiert werden soll. Ein Beispiel könnte so aussehen:

notepad++google.chromevlc

Hierbei verwenden Sie am besten die Paket-IDs, weil diese eindeutiger sind und Fehler beim Installieren vermindern.

Installation via PowerShell-Skript

Um die Programme aus der Liste mit Winget zu installieren, können Sie ein PowerShell-Skript schreiben, das die Datei zeilenweise liest und für jede Zeile den entsprechenden Winget-Befehl ausführt. Ein einfaches Skript sieht so aus:

Get-Content programme.txt | ForEach-Object { winget install --id=$_ --accept-source-agreements --accept-package-agreements -e}

Get-Content liest den Inhalt der Datei zeilenweise ein. Für jede Zeile wird dann winget install mit der Paket-ID ausgeführt. Die Parameter --accept-source-agreements und --accept-package-agreements sorgen dafür, dass automatisch notwendige Nutzungsbedingungen akzeptiert werden. Der Parameter -e steht für "exact", das heißt, dass Winget die Paket-ID exakt sucht und nicht anhand anderer Kriterien.

Ausführen des Skripts

Speichern Sie das Skript beispielsweise als "installiere.ps1" und führen Sie es in der PowerShell mit administrativen Rechten aus, da die Installation von Programmen oft erhöhte Rechte benötigt. Möglicherweise brauchen Sie davor die Ausführungsrichtlinie anzupassen, damit das Skript ausgeführt werden darf:

Set-ExecutionPolicy RemoteSigned

Anschließend führen Sie das Skript folgendermaßen aus:

.\installiere.ps1

Alternativ können Sie den Befehl auch direkt in der PowerShell eingeben, ohne separaten Skriptdatei.

Fehlerbehandlung und Optimierungen

Es ist ratsam, das Skript eventuell um Fehlerbehandlung zu erweitern, zum Beispiel um zu prüfen, ob ein Programm bereits installiert ist, oder ob der Installationsvorgang erfolgreich war. Außerdem kann eine Ausgabe in eine Logdatei hilfreich sein, um später nachzuvollziehen, welche Programme erfolgreich installiert wurden. Ein Beispiel für eine einfache Fehlerausgabe wäre:

Get-Content programme.txt | ForEach-Object { try { winget install --id=$_ --accept-source-agreements --accept-package-agreements -e -h Write-Host "$_ erfolgreich installiert." } catch { Write-Host "Fehler bei Installation von $_" }}

Hierbei sorgt der Parameter -h dafür, dass die Installation im Hintergrund (Silent Mode) und ohne weitere Eingaben ausgeführt wird.

Zusammenfassung

Das direkte Importieren einer Programmliste zur Installation mit Winget erfordert die Kombination mit einem Skript, das die Liste Zeile für Zeile liest und für jede Zeile den winget install-Befehl ausführt. Mithilfe von PowerShell können Sie einfach eine Textdatei vorbereiten und diese automatisiert abarbeiten lassen, um so viele Programme auf einem Windows-Rechner schnell und effizient zu installieren.

0

Kommentare