WinGet-Konfiguration

Mithilfe einer WinGet-Konfigurationsdatei können Sie die manuelle Computereinrichtung und das Onboarding von Projekten in einem einzigen Befehl konsolidieren, der zuverlässig und wiederholbar ist. Um dies zu erreichen, verwendet WinGet Folgendes:

  • Eine YAML-formatierte WinGet-Konfigurationsdatei, in der alle Softwareversionen, Pakete, Tools, Abhängigkeiten und Einstellungen aufgelistet sind, die zum Einrichten des gewünschten Zustands der Entwicklungsumgebung auf Ihrem Windows-Computer erforderlich sind.
  • PowerShell Desired State Configuration (DSC) zum Automatisieren der Konfiguration Ihres Windows-Betriebssystems.
  • Der winget configure-Befehl des Windows-Paket-Managers zum Initiieren des Konfigurationsprozesses.

Vorteile für die Computereinrichtung und das Onboarding von Projekten

Die Verwendung einer WinGet-Konfigurationsdatei bietet folgende Vorteile:

  • Unbeaufsichtigtes Setup: Geben Sie den winget configure-Befehl ein, und lassen Sie den Windows-Paket-Manager und PowerShell DSC die Installation und Einrichtung aller erforderlichen Anforderungen automatisieren, um die gewünschte Entwicklungsumgebung auf Ihrem Windows-Computer zu konfigurieren.
  • Zuverlässig und wiederholbar: Sie müssen sich beim Onboarding eines neuen Teams oder Projekts nicht mehr darum kümmern, die richtigen Versionen von Software, Paketen, Tools und Frameworks zu finden und die korrekten Computereinstellungen für Ihre Entwicklungsumgebung zu konfigurieren, da diese in der WinGet-Konfigurationsdatei im YAML-Format (mit JSON-Schema) vordefiniert sind.
  • Unterstützt Open Source-Zusammenarbeit: WinGet-Konfigurationsdateien können in einem GitHub-Repository gehostet werden, in dem Probleme oder Beiträge abgelegt werden, oder an einem privaten sicheren Speicherort (z. B. OneDrive) gespeichert und über private E-Mails oder andere geschützte Kanäle freigegeben werden.

Warnung

WinGet-Konfigurationsdateien und alle zugehörigen PowerShell DSC-Ressourcen sollten vor dem Installieren überprüft werden, um sicherzustellen, dass sie vertrauenswürdig sind.

Verwenden einer WinGet-Konfigurationsdatei zum Konfigurieren Ihres Computers

Zum Einrichten Ihres Computers mithilfe einer WinGet-Konfigurationsdatei können Sie folgendermaßen vorgehen:

  1. Installieren Sie Dev Home, wechseln Sie zu Computerkonfiguration, wählen Sie Konfigurationsdatei und dann die WinGet-Konfigurationsdatei aus, die Sie verwenden möchten. (Informationen zum Erstellen einer Konfigurationsdatei finden Sie unter Erstellen einer WinGet-Konfigurationsdatei).

  2. Verwenden Sie winget configure in der Befehlszeile. Um den winget configure-Befehl zu verwenden, müssen Sie WinGet-Version v1.6.2631 oder höher ausführen.

WinGet-Konfiguration – häufig gestellte Fragen

Hier finden Sie Antworten auf einige der am häufigsten gestellten Fragen zu WinGet-Konfiguration.

Wie funktionieren WinGet-Konfigurationsdateien?

WinGet-Konfigurationsdateien sind in YAML geschrieben und definieren, was auf dem Gerät installiert wird, um Ihre Entwicklungsumgebung zu bilden, sowie den Konfigurationszustand für Ihren Computer und installierte Anwendungen.

Eine WinGet-Konfigurationsdatei ist deklarativ und keine imperative Sequenz von zu befolgenden Schritten, und sie definiert das gewünschte Ergebnis des Computerkonfigurationszustands. Mithilfe von Windows-Paket-Manager und PowerShell DSC-Ressourcen kann die deklarative WinGet-Konfigurationsdatei Einstellungen installieren, konfigurieren und auf Ihre Umgebung anwenden, was zu einem Zustand führt, der für die Codierung bereit ist.

WinGet analysiert die Konfigurationsdatei, um sicherzustellen, dass sie gültig ist, und lädt dann alle zugehörigen PowerShell-Module (mit den DSC-Ressourcen) herunter, die erforderlich sind, um den gewünschten Zustand zu erreichen. Sobald diese Ressourcen heruntergeladen wurden, Sie die Vertrauenswürdigkeit der WinGet-Konfigurationsdatei überprüft haben und bestätigt haben, dass Sie die Sicherheit der Datei überprüft haben, beginnt WinGet mit dem Testen aller erforderlichen Assertionen und dem Anwenden des gewünschten Zustands.

Die Reihenfolge, in der die Ressourcen der WinGet-Konfigurationsdatei sortiert werden, ist inkonsequent. Einige Installations- und Konfigurationsprozesse können sogar parallel ausgeführt werden. Die Assertionen entsprechen direkt dem in den einzelnen Ressourcen definierten dependsOn-Feld. Wenn die Ressource eine Abhängigkeit von einer Assertion enthält, wird die Assertion zuerst überprüft. Wenn die Assertion fehlschlägt, schlägt auch die abhängige Ressource fehl. Die Konfigurationsdatei wird jedoch weiter ausgeführt und führt so viele Tasks wie möglich aus, auch wenn einige der Assertionen oder Ressourcenabhängigkeiten fehlschlagen, und bringt Ihren Computer so weit wie möglich in den Einrichtungsprozess, bevor er beendet wird. Sobald die Konfiguration abgeschlossen ist, liegt es in Ihrer Verantwortung, auf Fehler zu überprüfen.

Nach dem Ausführen der WinGet-Konfigurationsdatei kann beispielsweise ein Ergebnis wie folgt angezeigt werden:

Assert:: OsVersion
The configuration unit could not be found.
Apply :: DeveloperMode
  This configuration unity was not run because an assert failed or was false.
Apply :: WinGetPackage [vsPackage]
  This configuration unity was not run because an assert failed or was false.

In diesem Beispiel ist bei der Prüfung der Assertion für die erforderliche Version des Betriebssystems ein Fehler aufgetreten, sodass auch die DeveloperMode- und WinGetPackage-Ressourcen, die eine Abhängigkeit von dieser Assertion für die Betriebssystemversion enthielten, fehlschlugen. Alle anderen Installations- und Konfigurationstasks, die in der Konfigurationsdatei aufgeführt sind, werden jedoch weiter ausgeführt.

Ein Vorteil der deklarativen (nicht sequenziellen) Natur von WinGet-Konfigurationsdateien ist, dass die Position neuer Ressourcen, die der Datei hinzugefügt werden, keine Rolle spielt. Dies ist besonders hilfreich für lange Konfigurationsdateien, da Sie einfach zusätzliche Ressourcen am Ende der Datei hinzufügen können. Solange Sie die Assertionen und Abhängigkeiten richtig definiert haben, müssen Sie sich nicht um die Reihenfolge kümmern oder darum, welche Einrichtungsschritte als erstes, zweiten usw. erfolgen.

Screenshot of a PowerShell terminal running a WinGet Configuration file with the OSVersion assertion and dependent resources failing.

Wie verwende ich eine WinGet-Konfigurationsdatei?

Verwenden Sie den winget configure-Befehl, um eine WinGet-Konfigurationsdatei auszuführen.

Wie erstelle ich eine WinGet-Konfiguration?

Befolgen Sie zum Erstellen einer WinGet-Konfigurationsdatei die Anleitung im Dokument Erstellen einer WinGet-Konfigurationsdatei.

Wie kann ich sicherstellen, dass eine WinGet-Konfigurationsdatei vertrauenswürdig ist?

Es wird empfohlen, IMMER die Integrität einer WinGet-Konfigurationsdatei zu überprüfen, bevor Sie sie ausführen, indem Sie den Inhalt überprüfen und die Konfiguration in einer isolierten Umgebung testen. Siehe Überprüfen der Vertrauenswürdigkeit einer WinGet-Konfigurationsdatei.

Wo finde ich Beispiele für WinGet-Konfigurationsdateien?

Sie finden WinGet-Beispielkonfigurationsdateien im Windows Dev Home-Repository: https://aka.ms/dsc.yaml.

Wo finde ich Beispiele für PowerShell-Module, die DSC-Ressourcen enthalten?

Der PowerShell-Katalog hostet Hunderte von PowerShell-Modulen mit DSC-Ressourcen (Desired State Configuration). Sie können Suchergebnisse filtern, indem Sie den Filter „DSC-Ressource“ unter „Kategorien“ anwenden.

Desired State Configuration PowerShell module search results from the PowerShell Gallery

Kann ich eine Richtlinie einrichten, um die Verwendung von WinGet-Konfigurationsdateien in meiner Organisation zu blockieren?

Ja. GruppenrichtlinienobjekteEnableWindowsPackageManagerConfiguration und EnableWindowsPackageManagerConfigurationExplanation können zum Deaktivieren des WinGet-Konfigurationsfeatures in Ihrer Organisation verwendet werden.

Wo erhalte ich weitere Informationen zur Verwendung von WinGet-Konfigurationen mit Dev Home- und Dev-Laufwerken?

Erfahren Sie mehr über die Verwendung des Tools „Computerkonfiguration“ in Windows 11 Dev Home im Artikel Einrichten Ihrer Windows-Entwicklungsumgebung mit Dev Home. Möglicherweise möchten Sie auch lernen, wie Sie die leistungsoptimierten Dev Drive-Speichervolumes verwenden; siehe dazu Einrichten eines Dev Drive unter Windows 11.

Problembehandlung bei WinGet-Konfigurationen

Der häufigste Grund für das Fehlschlagen einer WinGet-Konfiguration sind PowerShell DSC-Ressourcen, die Administratorzugriff erfordern, um den gewünschten Zustand anzuwenden. Nicht für alle DSC-Ressourcen werden explizite Fehlerursachen angezeigt.

Weitere häufige Probleme bei der Problembehandlung werden in Kürze hinzugefügt. Schauen Sie sich in der Zwischenzeit die im GitHub-Repository zur WinGet-CLI aufgeführten Probleme an.