Skip to content

SysAdminDoc/MSStoreHelper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

70 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฆ MSStoreHelper

A GUI tool to download and install Microsoft Store apps without needing the Microsoft Store. Perfect for Windows LTSC editions, restricted environments, or when the Store just won't cooperate.

Version Python Platform License


Screenshot

โœจ Features

  • ๐Ÿ” Search the Microsoft Store - Find any app by name using the official Microsoft API
  • Headless CLI - Search, download, install, or mirror Store packages from RMM scripts without opening the GUI
  • ๐Ÿ“‚ Browse Categories - Quick access to essential apps, gaming, productivity, dev tools & more
  • โšก Quick Fix Presets - One-click solutions for common needs (Repair Store, Gaming Setup, Media Codecs)
  • ๐Ÿงฐ LTSC Essentials - One-click preset for Terminal, PowerShell 7, WSL, Photos, Calculator, and Snipping Tool
  • WSL Distro Sideload - Queues Ubuntu and Debian Store distribution packages for offline WSL installs
  • ๐Ÿ”Ž LTSC Gap Scan - Detects missing LTSC components and queues the matching Store packages automatically
  • ๐ŸŽฎ Xbox Core Queue - Queues Xbox Identity and Gaming Services with known-good version pinning and fallback logging
  • โญ User Profile - Stores recent searches and pinned favorite apps per Windows user profile
  • ๐ŸŽจ Theme Modes - Uses System, Dark, or Light mode with Windows accent-color matching
  • ๐Ÿ“ Release Notes - Fetches per-app notes from Microsoft Store product pages
  • โœจ Smart Select - Automatically picks the best packages and dependency frameworks (bundles, correct architecture, newest versions)
  • โญ๏ธ Delta Detection - Skips packages when the same or newer version is already installed
  • ๐Ÿงญ Architecture Override - Force x64, x86, ARM64, ARM, or neutral package selection when needed
  • ๐Ÿ›ก๏ธ Signature Verification - Blocks installs unless the package signature chains to Microsoft
  • ๐Ÿ” Verified Downloads - Writes packages atomically and records SHA-256 metadata before cache reuse
  • Resumable Downloads - Persists the queue across restarts and resumes .part downloads with HTTP Range requests
  • Keep Updated Mode - Re-checks installed catalog apps and queues newer Store bundles while the app is open
  • Rollback Cache - Keeps the last two cached package versions and can reinstall the previous cached app version
  • Package Diff - Compares cached package versions for manifest capability and dependency changes
  • Source Health - Detects StoreEdgeFD, RG-Adguard, WinGet, and Store CLI availability with fallback hints
  • Store Query Controls - Persists RG-Adguard ring, Store language, and market for localized package lookup and deployment artifacts
  • Pinned Python Setup - Uses requirements.txt and package metadata instead of runtime dependency installs
  • Diagnostics Bundle - Exports redacted app logs, source health, queue state, and repair manifests as a ZIP
  • Accessibility Guardrails - Keeps core theme contrast and the welcome surface usable at 100, 125, and 150 percent scaling
  • ๐Ÿ“ฅ Download Queue - Queue multiple packages with progress tracking
  • ๐Ÿ“ฆ Install Packages - Install downloaded apps directly (requires Admin)
  • ๐Ÿ”ง Store Repair - Built-in repair preset for Store cache, TokenBroker, licensing, and connectivity issues
  • Repair Rollback - Repair, provisioning, licensing, and cache actions write backup manifests and restore scripts
  • ๐Ÿ‘ฅ Provisioning Repair - Clears Store deprovision tombstones and re-registers Store apps for new profiles
  • ๐Ÿ” Licensing Reset - Restarts ClipSVC/LicenseManager and refreshes Store purchase licensing
  • ๐Ÿงน Cache Rebuild - Scans, backs up, and recreates Store cache folders offline
  • ๐Ÿ—‚๏ธ Shared Offline Cache - Mirrors downloaded AppX/MSIX artifacts to a shared folder for air-gapped reuse
  • Local HTTP Mirror - Serves a downloaded AppX/MSIX cache and JSON package index to nearby clinic PCs
  • ๐Ÿงพ DISM Provisioning Export - Generates fleet-ready PowerShell scripts that call DISM for queued packages
  • ๐Ÿ“‹ WinGet Import Export - Saves selected Store apps as a reproducible WinGet msstore import manifest
  • App Installer Export - Writes .appinstaller manifests plus package folders for lightweight App Installer deployments
  • ๐Ÿ“ฆ IntuneWin Export - Packages downloaded queue items with install and detection scripts for Intune Win32 apps
  • ๐Ÿ“‹ Verbose Console - Detailed logging with error hints and troubleshooting tips

๐Ÿ–ฅ๏ธ Requirements

  • Windows 10/11 (including LTSC editions)
  • Python 3.8+
  • Administrator rights (for installation only)

Install pinned dependencies before first run:

  • customtkinter - Modern UI framework
  • requests - HTTP client
  • beautifulsoup4 - HTML parsing

๐Ÿš€ Quick Start

Option 1: Run Directly

# Clone or download
git clone https://github.com/SysAdminDoc/MSStoreHelper.git
cd MSStoreHelper

# Install pinned dependencies
py -3 -m pip install -r requirements.txt

# Run
python MSStoreHelper.py

For offline PCs, prepare a wheelhouse on a connected PC:

py -3 -m pip download -r requirements.txt -d wheelhouse
py -3 -m pip install --no-index --find-links wheelhouse -r requirements.txt

Option 2: Run as Admin (for installation features)

# Right-click PowerShell โ†’ Run as Administrator
python MSStoreHelper.py

Option 3: Headless CLI

# Search without opening the GUI
python MSStoreHelper.py --search terminal --json

# Download a catalog app, product ID, or package identity
python MSStoreHelper.py --download Microsoft.WindowsTerminal --output C:\Packages --json

# Install from an elevated RMM shell without opening the GUI
python MSStoreHelper.py --install Microsoft.WindowsTerminal --output C:\Packages --json

# Pre-download and serve a local package mirror for nearby PCs
python MSStoreHelper.py --download Microsoft.WindowsTerminal --output C:\MSStoreMirror --json
python MSStoreHelper.py --mirror C:\MSStoreMirror --host 0.0.0.0 --port 8765 --json

๐Ÿ“– How to Use

๐Ÿ” Finding Apps

  1. Search by Name: Type an app name (e.g., "Spotify", "VLC", "Firefox") and click Search
  2. Browse Categories: Click a category in the sidebar to see curated app lists
  3. Store Query: Click "Query: Retail / en-US / US" to change RG-Adguard ring, Store language, or market
  4. Quick Actions: Use presets for common tasks like LTSC Essentials, Store repair, or gaming setup
  5. Scan LTSC Gaps: Click "๐Ÿ”Ž Scan LTSC Gaps" to detect and queue missing tracked components
  6. Xbox Core: Click "๐ŸŽฎ Queue Xbox Core" to queue Xbox Identity and Gaming Services through the pinned install path
  7. Keep Updated: Enable "Keep updated" or click "Check" to queue newer packages for installed catalog apps
  8. Pin Favorites: Select apps and click "Pin Selected" to keep them in the sidebar for this Windows user
  9. Release Notes: Click "Notes" on an app row to fetch Microsoft Store page notes

๐Ÿ“ฆ Downloading Packages

  1. Click "Get Files" on any search result, or select multiple apps and click "Get Selected Apps"
  2. Review the available packages (bundles, different architectures, versions)
  3. Click "โœจ Smart Select" to automatically pick the best files
  4. Click "โž• Add to Queue" to add selected packages to the download queue
  5. Optional: enable Shared cache and pick a shared folder for air-gapped reuse
  6. Click "โฌ‡๏ธ Download All" to start downloading
  7. Click "Diagnostics" to export a redacted support ZIP with queue, source, log, and repair details

๐Ÿงพ Fleet Provisioning

  1. Add the packages and dependencies you want to deploy to the download queue
  2. Click "๐Ÿงพ Export DISM Script"
  3. Save the generated .ps1 beside the downloaded packages or in your shared cache
  4. Run the script from an elevated PowerShell session on the target PC

Exporting an App Installer Manifest

  1. Download the queued AppX/MSIX packages
  2. Click "Export AppInstaller"
  3. Save the .appinstaller; MSStoreHelper copies the required packages into a sibling folder
  4. Install with Add-AppxPackage -AppInstallerFile <file.appinstaller>

๐Ÿ“ฆ Exporting an IntuneWin Package

  1. Download the queued AppX/MSIX packages
  2. Click "๐Ÿ“ฆ Export IntuneWin"
  3. Select IntuneWinAppUtil.exe if MSStoreHelper cannot find it automatically
  4. Save the .intunewin; MSStoreHelper also writes a sidecar detection script

๐Ÿ“‹ Exporting a WinGet Manifest

  1. Browse a category or search for apps
  2. Select the apps you want to reproduce on other PCs
  3. Click "Export WinGet"
  4. Import the saved .json with winget import -i <file>

๐Ÿ“ฆ Installing Packages

  1. After downloading, click "Install"
  2. Note: Requires Administrator privileges
  3. Check the console output for any errors or hints
  4. To roll back, queue the app identity and click "Rollback" to install the newest cached version below the current version
  5. Click "Diff" to compare cached manifest permissions and dependencies between the newest two cached versions

๐Ÿ”ง Repairing the Store

If you see errors like "The server stumbled" or "needs to be online":

  1. Click "๐Ÿ”ง Repair Store" in the sidebar
  2. Watch the console for cache, token, and licensing repair results
  3. Use the logged backup folder and restore.ps1 if a repair needs to be rolled back
  4. Restart your PC if the console recommends it

๐Ÿ’ก Tips

Tip Description
Use Bundles Files ending in .msixbundle or .appxbundle work on all architectures
Avoid Encrypted Skip .eappx and .emsix files - they won't install without a license
Install Dependencies First Smart Select queues VCLibs, .NET Native, and UI.Xaml before main apps
Check Windows Version Some apps require Windows 11 - check the console for compatibility errors
Smart Select Let the tool pick the best packages automatically

โš ๏ธ Common Errors

Error Code Meaning Solution
0x80073CFD App requires newer Windows App incompatible - try older version
0x80073D06 Higher version installed Treated as a no-op; you already have a newer version
0x80073D02 Package in use Close the app and retry
0x80073D19 Missing dependency Install VCLibs/.NET first
0x80073CFF Sideloading disabled Enable Developer Mode in Windows Settings
0x80073CF3 Already installed App already exists

๐Ÿ—๏ธ How It Works

MSStoreHelper uses two APIs:

  1. Microsoft Store Search API (storeedgefd.dsx.mp.microsoft.com)

    • Same API used by WinGet and Intune
    • Returns app metadata and Package IDs
  2. RG-AdGuard Store API (store.rg-adguard.net)

    • Provides direct download links for Store packages
    • Returns all available versions and architectures

Packages are downloaded to %USERPROFILE%\Downloads\MSStoreHelper and installed using PowerShell's Add-AppxPackage cmdlet.


๐Ÿ“ Project Structure

MSStoreHelper/
โ”œโ”€โ”€ MSStoreHelper.py               # Main application
โ”œโ”€โ”€ store_sources.py               # Store source health, retry, and fallback helpers
โ”œโ”€โ”€ msstore_package_resolution.py  # Package selection and install ordering
โ”œโ”€โ”€ pyproject.toml                 # Python package metadata
โ”œโ”€โ”€ requirements.txt               # Pinned runtime dependencies
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ test_package_resolution.py # Resolver tests
โ”‚   โ”œโ”€โ”€ test_store_repair.py       # Store repair tests
โ”‚   โ”œโ”€โ”€ test_offline_cache.py      # Shared cache tests
โ”‚   โ”œโ”€โ”€ test_dism_export.py        # DISM export tests
โ”‚   โ”œโ”€โ”€ test_winget_export.py      # WinGet manifest tests
โ”‚   โ”œโ”€โ”€ test_diagnostics_bundle.py # Diagnostics ZIP tests
โ”‚   โ”œโ”€โ”€ test_integration_harness.py # Mocked Store/PowerShell workflow tests
โ”‚   โ”œโ”€โ”€ test_cli.py                # Headless CLI workflow tests
โ”‚   โ”œโ”€โ”€ test_accessibility.py      # Theme contrast and DPI guardrails
โ”‚   โ”œโ”€โ”€ test_appinstaller_export.py # App Installer manifest tests
โ”‚   โ”œโ”€โ”€ test_intune_export.py      # IntuneWin package tests
โ”‚   โ”œโ”€โ”€ test_ltsc_workflow.py      # LTSC preset tests
โ”‚   โ”œโ”€โ”€ test_keep_updated.py       # Installed catalog update tests
โ”‚   โ”œโ”€โ”€ test_package_diff.py       # Cached manifest diff tests
โ”‚   โ”œโ”€โ”€ test_user_profile.py       # Search history and favorites tests
โ”‚   โ”œโ”€โ”€ test_dependency_bootstrap.py # Dependency setup tests
โ”‚   โ”œโ”€โ”€ test_release_notes.py      # Store page release-note tests
โ”‚   โ””โ”€โ”€ test_store_sources.py      # Source health and fallback tests
โ”œโ”€โ”€ README.md                      # This file
โ”œโ”€โ”€ LICENSE                        # MIT License
โ”œโ”€โ”€ icon.png / icon.ico            # App icon assets
โ””โ”€โ”€ screenshot.png                 # README screenshot

๐Ÿ”ง Configuration

Default settings can be modified at the top of MSStoreHelper.py:

APP_VERSION = "3.35.0"
DEFAULT_OUTPUT = os.path.join(os.environ['USERPROFILE'], "Downloads", "MSStoreHelper")

๐Ÿ“‹ App Catalog

The built-in catalog includes:

Category Apps
๐Ÿ› ๏ธ Essential Repairs Microsoft Store, App Installer, Xbox Identity
โš™๏ธ System Components VC++ Runtime, HEVC Codec, AV1 Codec, WebP
๐Ÿ’ป Productivity Windows Terminal, PowerToys, Notepad, Calculator, Snipping Tool, Photos
๐ŸŽฎ Gaming Xbox App, Xbox Game Bar, Gaming Services
๐ŸŒ Browsers Firefox, Brave
๐Ÿ› ๏ธ Developer Tools VS Code, Python 3.12, PowerShell 7, WSL
๐Ÿง WSL Distributions Ubuntu, Debian

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • RG-AdGuard - For providing the package download API
  • CustomTkinter - For the modern UI framework
  • Microsoft - For the Store search API

โš ๏ธ Disclaimer

This tool is provided as-is for legitimate use cases such as:

  • Installing apps on Windows LTSC editions
  • Offline/restricted environments
  • Troubleshooting Store issues

Always download apps from official sources. The author is not responsible for any misuse of this tool.


Made with โค๏ธ for the Windows LTSC community

About

A GUI tool to download and install Microsoft Store apps without needing the Microsoft Store. Perfect for Windows LTSC editions, restricted environments, or when the Store just won't cooperate.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages