Microsoft Store Apps bzw. Inbox-Apps wie z.B. „Microsoft Kamera“, „Microsoft Alarm und Uhr“, „Microsoft Rechner“, „Microsoft Paint 3D“ und andere für eine Offline-Installation herunterzuladen war immer schon trickreich. Diese Apps werden üblicherweise nur online über den Microsoft Store aktualisiert.
Lösung bis 2022 die nicht mehr funktioniert
Möchte man diese für einen vollständig offline zu installierenden Windows 10 Rechner herunterladen, so hat man sich bislang der Website https://store.rg-adguard.net/ bedient (siehe Beschreibung dieser Vorgangsweise). Dort konnte man anhand der Microsoft Store URL sich die Appx Pakete samt Dependencies anzeigen lassen und herunterladen. Das klappt nun im Jahr 2023 jedoch nicht mehr – bzw. es klappt schon, aber alle angebotenen Downloads enden mit 2022, es sind keine neuen Versionen aus 2023 mehr gelistet.
Vermeintlich „neuere“ Lösungen wie die hier im NTLite Forum beschrieben oder diese hier auf Deskmodder diskutierte verwenden zum Download auch nur das schon bekannte store.rg-adguard.net und liefern damit auch keine aktuellen Ergebnisse mehr.
Microsoft Store Download URLs ermitteln
Vorbereitung: Windows VM mit Fiddler
Zur Umsetzung wird eine Windows 10 VM mit installiertem Fiddler Classic benötigt. Es handelt sich hierbei um einen lokalen Web-Proxy mit dem sich sämtlicher HTTP/HTTPS Datenverkehr der Maschine inspizieren lässt. Im Unterschied zu einem Netzwerk-Sniffer wie Wireshark kann dieser auch HTTPS-Traffic intercepten, indem ein Stammzertifikat generiert wird das on-the-fly passende Interception-Zertifikate ausstellen kann (Umsetzung daher nur in einer Test-VM empfohlen, nicht auf produktiv genutzten Geräten anwenden).
Fiddler-Konfiguration vorbereiten
Menüleiste: WinConfig [1] -> AppContainer Loopback Excempt
-> Button: Excempt All [2] -> Save Changes
Menü: Tools -> Options -> Registerkarte „HTTPS“ [2]
-> Haken bei „Decrypt HTTPS traffic“ [3] setzen und das generierte Root-Zertifikat importieren
Download über Microsoft Store aufzeichnen
Bei laufendem Fiddler wird nun der Microsoft Store (aus dem Startmenü) gestartet. Die benötigten (Inbox-)Apps werden installiert bzw. aktualisiert: [1] Bibliothek wählen und die Updates einzeln oder gesammelt abrufen / durchführen.
Während der Download läuft zeichnet Fiddler die HTTP(S) Zugriffe auf, diese gehen von einem svchost Prozess aus, die hier abgerufenen URLs zeigen aktuell nach z.B.:
http://tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/...
Diese URLs sind jedoch dynamisch generiert, ändern sich daher, und sind nur wenige (ca. 3-5) Minuten gültig.
Um die relevanten URLs aus Fiddler komfortabel zu extrahieren geht man wie folgt vor. Mittels Strg+S die Suche öffnen, nach der „REGEX:(appx|msix)“ suchen, die Suche wie im nachfolgenden Screenshot markiert konfigurieren:
Download-URL ermitteln / kopieren
Die URL eines (oder aller) selektierten Zeilen ermittelt man über das Kontext-Menü einer Zeile wie folgt:
Tipp: Wenn (wie im Screenshot gezeigt) zuvor über die Such-Funktion gleich mehrere Zeilen selektiert wurden, dann erhält man eine Liste der URLs in die Zwischenablage. Diese in eine Text-Datei eingefügt enthält oftmals die gleiche URLs redundant mehrfach. Mittels folgenden Powershell-Einzeilers können die Duplikate entfernt werden:
$URLS =Get-Content "C:\Temp\URLs.txt" | Select-Object -Unique
Beim Herunterladen der Pakete mit den ermittelten URLs muss man sich beeilen! Diese URLs sind nur wenige Minuten (ca. 3-5 Minuten wurde beobachtet) gültig, danach erhält man lediglich einen Fehler „403 – Forbidden“.
Probleme hierbei, Tricks & Tipps
Zertifikats-Pinning / TLS-Interception stört
Der Microsoft Store scheint manche URLs mit Zertifikats-Pinning zu nutzen, wenn der Microsoft Store keine Updates anzeigen möchte, dann muss Fiddler dahingehend umkonfiguriert werden, dass „Decrypt HTTPS traffic“ zumindest vorübergehend ausgeschaltet wird. Die eigentlichen App-Pakete sind sowie das bisher beobachtet wurde ohnehin i.d.R. nur per HTTP abgerufen.
Paket nochmals neu über Microsoft Store App installieren
Wenn man ein Paket bereits installiert hat, und es – um die URL herauszufinden – neu installieren möchte, dann geht man wie folgt in der PowerShell vor: Mit Get-AppxPackage
das Paket heraussuchen und mit Remove-AppPackage
dann das Paket entfernen damit man es über die Microsoft Store App anschließend neu installieren kann:
PS C:\temp> Get-AppxPackage "*calc*"
Name : Microsoft.WindowsCalculator
Publisher : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture : X64
ResourceId :
Version : 11.2210.0.0
PackageFullName : Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe
InstallLocation : C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe
IsFramework : False
PackageFamilyName : Microsoft.WindowsCalculator_8wekyb3d8bbwe
PublisherId : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
NonRemovable : False
Dependencies : {Microsoft.UI.Xaml.2.8_8.2306.22001.0_x64__8wekyb3d8bbwe, Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8wekyb3d8bbwe, Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64__8wekyb3d8bbwe, Microsoft.VCLibs.140.00_14.0.32530.0_x64__8wekyb3d8bbwe...}
IsPartiallyStaged : False
SignatureKind : Store
Status : Ok
PS C:\temp> Get-AppxPackage "*calc*" | Remove-AppPackage
Nicht alle Pakete werden als *.Appx* bzw. *.Msix* Files heruntergeladen
Es gibt vereinzelt Pakete, die NICHT die erwarteten Dateinamen und Datei-endungen aufweisen, sondern einfach nur eine GUID beim Download erhalten. Diese findet man mit dem oben skizzierten RegEx-Filter somit auch nicht. Hier hilft nur parallel zum Download mit Fiddler „mitzuschauen“, die URL zu kopieren und zu downloaden. Der Inhalt des Files lässt sich anschließend mit 7zip prüfen, wie der Dateinamen geheißen hätte lässt sich bei einem installierten Paket mit Get-AppxPackage herausfinden.
Alternativen
Der Microsoft Windows Store for Business (hier beschrieben) kann ebenfalls für den Download der Offline-nutzbaren Files verwendet werden, man benötigt jedoch einen Business-Account hierfür.
Guten Tag,
I wrote the NTLite Forum script to help simplify the task of using store.rg-adguard, and to hide the site’s rampant use of Yandex tracking cookies.
Their Store API does list all current versions of the Store apps, and can find „unreleased“ apps only available for Insider users on the Fast Ring. Select „Fast“ in my script’s drop menu for the Ring type.
Older apps like Camera or Alarms are not being worked on, but there are minor updates if you check the timestamps (which my script reports). While it’s a fun diversion to snoop the Store app in Fiddler and use it to capture download links — it’s not practical if you desire to download multiple app packages. And my script is helpful in that it downloads any pre-req Appx packages at the same time.
For some desktop Apps, there is a split pattern for app version numbers. Apps originally released for W10 are mostly numbered by the calendar release date (2019, 2022) — but a W11 update will break the pattern and use a non-calendar major version. Microsoft.ZuneMusic jumps from 2015, 2019 to 11.
While the script was provided to help NTLite users, it works for everyone and doesn’t require any special permissions to download package files.
Thanks Garlin, I’ll give it a try soon!