Registrieren einer OEM-Anwendung während des Imageerstellungsprozesses
Wichtig
Universal Orchestrator bietet OEMs Funktionen zum Registrieren einer Anwendung während des Imageerstellungsprozesses, um eine einmalige beschleunigte Installation/Aktualisierung durchzuführen. Diese Installation erfolgt innerhalb von 30 Minuten, nachdem sich ein Benutzer bei einem neuen Gerät angemeldet hat. Das Beschleunigen einer Anwendung hat möglicherweise negative Auswirkungen auf die Leistung für die Out-of-Box-Erfahrung für neue Geräte. Diese Funktionalität ist nur für Windows-Versionen verfügbar, die das kumulative nicht sicherheitsrelevante Vorschauupdate vom November 2024 ausführen.
Windows 11 23H2 – KB5046732 (Betriebssystembuild 22631.4541)
Windows 11 24H2 – KB5046740 (Betriebssystembuild 26100.2454)
Anforderungen
Um das beschleunigte App-Framework zu nutzen, muss die App die folgenden Anforderungen erfüllen:
Es muss sich um eine store-verpackte App im MSIX-Format handeln.
Er muss über einen gültigen Produktfamiliennamen (PFN) verfügen.
Registrierung
Registrierungsdateien sind ASCII-JSON-Dateien, die Metadaten mit Informationen zum gewünschten beschleunigten Datenfluss sowie alle benutzerdefinierten Client-Zielvorgaben enthalten, die ausgeführt werden müssen.
Beschleunigte Apps unterstützen zwei Mechanismen zum Aktualisieren/Erwerben einer App:
Aus dem Microsoft Store mithilfe einer Produkt-ID (empfohlen)
Aus einer URL, die ein MSIX-Paket oder -Bündel enthält. Dieses Paket muss eine store-verpackte App mit einem gültigen Paketfamiliennamen (PFN) enthalten. Der OEM- oder App-Besitzer ist für die Aufrechterhaltung dieser URL verantwortlich.
Jede Registrierungsdatei muss die folgenden erforderlichen JSON-Eigenschaften enthalten:
Schlüssel | Typ | Beschreibung |
---|---|---|
PFN | Schnur | Der Paketfamilienname der App (Beispiel: Microsoft.WindowsStore_8wekyb3d8bbwe) |
OEMName | Schnur | Zeichenfolge, die den OEM darstellt, der diese Registrierung erstellt |
UpdaterName | Schnur | Eindeutiger Name zum Nachverfolgen dieser beschleunigten Registrierung |
Registrierungsversion | Zahl | Die Version dieser App-Registrierung |
Quelle | Schnur | Zulässige Werte: Store | CustomURL Store – sucht direkt aus dem Microsoft Store nach der App. CustomURL – sucht nach der App anhand einer URL, die im Wert "Endpoint" der App-Registrierung angegeben ist. |
Szenario | Schnur | Zulässige Werte: Aktualisieren | Übernahme | StubAcquisition Update – (Für CustomURL-Flüsse nicht unterstützt) versucht, eine vorhandene App auf die neueste verfügbare Version zu aktualisieren. Es wird keine Arbeit ausgeführt, wenn die App nicht vorhanden ist. Erwerb – versucht, die neueste Version einer App zu erwerben. StubAcquisition – versucht, einen "Stub" der App zu erwerben (sofern verfügbar). Erwirbt die vollständige App, wenn der Stub nicht verfügbar ist. |
ProductId | Schnur | (Nur für Store-Szenarien erforderlich) Die ProductId der gewünschten Store-App |
Endpunkt | Schnur | (Nur erforderlich für CustomURL-Szenarien) Ein Zeichenfolgen-URI, der auf einen Speicherort zeigt, an dem ein MSIX-Paket gehostet wird. Muss ein SSL-URI sein, der mit "https" beginnt. |
Darüber hinaus können die folgenden optionalen Eigenschaften angegeben werden, um das Verhalten der beschleunigten App-Installation zu ändern oder den beschleunigten Fluss nur unter bestimmten Bedingungen zu erreichen.
Schlüssel | Typ | Vorgabe | Beschreibung |
---|---|---|---|
ErlaubtInOobe | Boolesch | Falsch | Soll diese beschleunigte App während des Benutzer-OOBE ausgeführt werden? Hinweis: Achten Sie beim Festlegen auf "true", da dies möglicherweise Ressourceneinschränkungen auf einem Gerät während des Out of Box Experience-Flusses und negative Auswirkungen auf die vom Benutzer wahrgenommene Leistung erzeugt. |
Maximale Wiederholungsanzahl | Zahl | 1 | Die Häufigkeit, mit der dieser Updater nach einem Fehler erneut versuchen kann. Maximal zulässiger Wert ist: 5 |
TimeoutDauerInMinuten | Zahl | 15 | Die Dauer in Minuten, bis dieser Updater die Arbeit abgeschlossen hat. Maximal zulässiger Wert: 30 |
Architektur | Schnur | Keine Einschränkung | Zulässige Werte: "amd64" | "arm64" Gibt an, ob die beschleunigte Arbeit nur für eine bestimmte Architektur erfolgen soll. |
Mindestzugelassene Buildversion | Zahl | Keine Einschränkung | Minimale Windows-Buildversionen, in denen die beschleunigte Arbeit zulässig ist. Wenn diese Einstellung beispielsweise auf 22631 festgelegt ist, ist beschleunigte Arbeit für Windows 11 23H2 (10.0.22631.x) zulässig, aber für Windows 11 22H2 (10.0.22621.x) blockiert. |
HonorDeprovisioning | Boolesch | Falsch | (Gilt nur für Kaufszenarien) Wenn die App zuvor deprovisioniert wurde, unterlassen Sie es, sie erneut zu erwerben. |
ÜberspringenWennVorhanden | boolesch | Falsch | (Gilt nur für Kaufszenarien) Führen Sie die beschleunigte Arbeit nicht aus, wenn bereits eine Version der App vorhanden ist. |
Priorität | Zahl | 100 | Ein numerischer Wert zwischen 1 und 100, der die relative Priorität dieses Anwendungsupdates angibt. Niedrigere Werte geben eine höhere relative Priorität für andere beschleunigte Apps an. |
Ausgeschlossene Regionen | Array (Zeichenfolge) | Keine Einschränkungen | Ein JSON-Array mit Zeichenfolgen für Regionen, in denen diese App NICHT beschleunigt werden soll. Jeder Eintrag im Array entspricht dem zwei Buchstaben ISO 3166-1 Ländercode der gewünschten Region. Beispiel: ["US", "MX"] würde diesen Fluss auf Geräten verhindern, auf denen die Region USA oder Mexiko ist.Hinweis: Dieser Wert kann nicht mit "IncludedRegions" verwendet werden. |
Eingeschlossene Regionen | Array (String) | Keine Einschränkungen | Ein JSON-Array mit Zeichenfolgen, die eine Zulassungsliste von Regionen angeben, in denen diese App beschleunigt werden soll. Jeder Eintrag im Array entspricht dem zwei Buchstaben ISO 3166-1 Ländercode der gewünschten Region. Beispiel: ["US", "MX"] würde diesen Fluss nur auf Geräten zulassen, auf denen die Region USA oder Mexiko ist.Hinweis: Dieser Wert kann nicht mit "ExcludedRegions" verwendet werden. |
EnthalteneEditionen | Array (Zahl) | Keine Einschränkungen | Ein JSON-Array mit Zahlen, das eine Zulassungsliste von Editionen angibt, in denen diese App beschleunigt werden soll. Jeder Eintrag im Array entspricht dem Edition-Code, der von der GetProductInfo-APIabgerufen wird. Beispiel: [121, 122] beschränkt auf nur Education- und EducationN-EditionenHinweis: Dieser Wert kann nicht mit ExcludedEditions verwendet werden. |
AusgeschlosseneEditionen | Array (Zahl) | Keine Einschränkungen | Ein JSON-Array mit Zahlen für Editionen, bei denen diese App NICHT beschleunigt werden sollte. Jeder Eintrag im Array entspricht dem Edition-Code, der von der GetProductInfo-APIabgerufen wird. Beispiel: [121, 122] zum Ausschließen von Education- und EducationN-Editionen.Hinweis: Dieser Wert kann nicht mit IncludedEditions verwendet werden. |
Proben
Store-basierte Stub-Erfassung, nur in den USA und Mexiko, zur Ausführung während der OOBE (Out-of-Box Experience)
{
"OEMName": "Contoso",
"UpdaterName": "OEMApp1",
"RegistrationVersion":1,
"Source": "Store",
"Scenario": "StubAcquisition",
"PFN": "FakePackageFamilyName",
"ProductId": "StoreProductId",
"HonorDeprovisioning": true,
"AllowedInOobe": true,
"IncludedRegions": ["US", "MX"],
"Priority": 50
}
URL-basierter App-Erwerb auf amd64-Geräten, ausschließlich unter Windows 11 23H2, ausgenommen die Editionen Education und EducationN (not Windows 11 22H2)
{
"OEMName": "Contoso",
"UpdaterName": "OEMApp1",
"RegistrationVersion":2,
"Source": "CustomURL",
"Scenario": "Acquisition",
"PFN": "FakePackageFamilyName",
"Endpoint": "https://<SSL_URI>",
"ExcludedEditions": [121, 122],
"Architecture": "amd64",
"MinimumAllowedBuildVersion": 22631,
"Priority": 60
}
Werkzeuge
Um den Registrierungsprozess zu erleichtern und umsetzbares Feedback zu den Registrierungsmetadaten bereitzustellen, müssen OEMs die AppOrchestration PowerShell-Skripts von folgendem Speicherort aus verwenden:
Die Skripte führen eine grundlegende Überprüfung durch und hinterlegen die Registrierung am richtigen Ort auf dem Gerät. Bei Fehlern lösen die Skripts eine Ausnahme mit den spezifischen Fehlerdetails aus.
So verwenden Sie die Skripts:
Laden Sie die Skripts auf Ihr Gerät herunter. Auf der GitHub-Repositoryseite können Sie auswählen, ob sie als ZIP-Datei heruntergeladen und auf Ihr Gerät extrahiert werden sollen.
Führen Sie in einem PowerShell-Fenster "Import-Module <PathToScripts>\scripts\AppOrchestration.psd1" aus.
Anmerkung
Für diese Skripts muss der Benutzer über Administratorrechte auf dem Gerät verfügen und von einer Konsole mit erhöhten Rechten ausgeführt werden.
Für den Registrierungsfluss werden vier Haupt-Cmdlets verwendet:
Test-UpdaterRegistration <PathToRegistrationFile>
Zweck: Überprüfen des Inhalts einer vorgeschlagenen Registrierungsdatei (ohne Registrierung). Ermöglicht den OEMs, die Nutzlast der Registrierungsdatei anzupassen, ohne dass sich dies auf das Gerät auswirkt.
Add-UpdaterRegistration <PathToRegistrationFile>
Zweck: Überprüfen, organisieren und bereitstellen Sie den Inhalt einer Registrierungsdatei an den entsprechenden Ort, um den beschleunigten App-Prozess zu starten.
Get-UpdaterRegistration <OEMName><UpdaterName>
Zweck: Wenn OEMName und UpdaterName bereitgestellt werden, geben Sie eine Zusammenfassung einer vorhandenen Registrierung zurück, die diesen Werten entspricht. Wenn diese Eingaben weggelassen werden, geben Sie eine Zusammenfassung aller aktuellen Registrierungen zurück, die auf dem Gerät vorhanden sind.
Remove-UpdaterRegistration <OEMName><UpdaterName>
Zweck: Entfernt alle Registrierungen, die mit den Werten von OEMName und UpdaterName übereinstimmen.
Ausführung
Das Universal Orchestrator-Framework ruft automatisch jede der registrierten Apps in der Reihenfolge auf, basierend auf relativer Priorität, und zwar innerhalb der ersten 30 Minuten, nachdem ein Benutzer den Desktop auf einem neuen Gerät erreicht hat (oder während der Benutzer-OOBE, wenn AllowedInOobe auf 'true' gesetzt ist). Jede registrierte Anwendung, die durch den OEM-Registrierungsprozess hinzugefügt wurde, wird versucht auszuführen, bis entweder:
Es wurde erfolgreich installiert.
Er überschreitet die maximale Anzahl von Fehlern, die in MaxRetryCount angegeben wurden. Nach jedem Fehler wechselt die App in einen Abkühlzeitraum von 30 Minuten, bevor sie erneut versucht wird.
Das Universal Orchestrator-Framework führt keine beschleunigten Versuche aus, wenn eine der folgenden Bedingungen zutrifft:
Das Gerät hat keinen Internetzugang.
Das Gerät befindet sich in einem getakteten Netzwerk.
Das Gerät befindet sich im Akku, und der Stromsparmodus ist aktiviert.
Das Gerät ist mit einer Windows-Update-Richtlinie für eingeschränkten Netzwerkverkehrkonfiguriert.
Das Gerät ist mit einer CTA-Richtlinie konfiguriert, die für AutoApprove nicht festgelegt ist.
In jedem dieser Fälle behält das Universal Orchestrator-Framework die Registrierungen bei, bis die Gerätekonfiguration beschleunigte Versuche ermöglicht, fortzufahren.
Wenn die App-Registrierung optionale Werte enthält, die den beschleunigten Fluss blockieren (z. B. aufgrund des Editionstyps), betrachtet das Universal Orchestrator-Framework diese Registrierungsanforderung als erfüllt und versucht sie nicht erneut, auch wenn sich diese Bedingungen später auf einem Gerät ändern können.
Wichtig
Seien Sie vorsichtig, wenn Sie sich dafür entscheiden, Apps über dieses Framework zu beschleunigen, da die Aktualisierungsvorgänge auftreten, wenn das Gerät möglicherweise verwendet wird und eine negative Leistungsauswirkung der Benutzererfahrung auf einem neuen Gerät verursachen kann.