Query and download Windows Store app packages from the command line.
WinStoreRip is a PowerShell module that retrieves package metadata and download links for Microsoft Store apps via the store.rg-adguard.net API. It supports querying by Product ID, URL, Package Family Name, or Category ID across multiple release channels.
Install-Module -Name WinStoreRip -Scope CurrentUsergit clone https://github.com/jorgeasaurus/WinStoreRip.git
Import-Module ./WinStoreRip/WinStoreRip.psd1# List all packages for an app by Product ID
Get-StoreLinks -Data '9NBLGGH4NNS1'
# Download everything to a folder
Get-StoreLinks -Data '9NBLGGH4NNS1' | Save-StoreApp -Path ./downloads
# Download only .msixbundle files from all release channels
Get-StoreLinks -Data '9NBLGGH4NNS1' -Channel All | Save-StoreApp -Filter '*.msixbundle'Queries the store API for package download links.
Get-StoreLinks [-Type <String>] -Data <String> [-Channel <String>]| Parameter | Description | Default |
|---|---|---|
-Type |
Query type: URL, ProductId, PackageFamilyName, CategoryID |
ProductId |
-Data |
The query value (product ID, store URL, package family name, etc.) | (required) |
-Channel |
Release channel: Retail, RP, WIS, WIF, All |
Retail |
Returns WinStoreRip.PackageInfo objects with Name, URL, ExpireTime, SHA1, Size, and Channel properties.
Examples:
# Query by Product ID (default)
Get-StoreLinks -Data '9NBLGGH4NNS1'
# Query by store URL across all channels
Get-StoreLinks -Type URL -Data 'https://apps.microsoft.com/detail/9nblggh4nns1' -Channel All
# Query by Package Family Name on Release Preview
Get-StoreLinks -Type PackageFamilyName -Data 'Microsoft.WindowsTerminal_8wekyb3d8bbwe' -Channel RPDownloads packages to disk. Accepts pipeline input from Get-StoreLinks.
Save-StoreApp [-InputObject] <PSCustomObject> [-Path <String>] [-Filter <String>] [-WhatIf] [-Confirm]| Parameter | Description | Default |
|---|---|---|
-InputObject |
Package objects from Get-StoreLinks (pipeline) |
(required) |
-Path |
Output directory | . (current directory) |
-Filter |
Wildcard pattern to filter by filename (e.g., *.appx, *x64*) |
(none) |
Features:
- Skips files that already exist with matching size
- SHA1 validation after download
- Progress bar during downloads
- Supports
-WhatIfto preview without downloading
Examples:
# Download all packages
Get-StoreLinks -Data '9NBLGGH4NNS1' | Save-StoreApp -Path ./downloads
# Download only .msixbundle files
Get-StoreLinks -Data '9NBLGGH4NNS1' | Save-StoreApp -Filter '*.msixbundle' -Path C:\Packages
# Preview what would be downloaded
Get-StoreLinks -Data '9NBLGGH4NNS1' | Save-StoreApp -WhatIf| Channel | Flag | Description |
|---|---|---|
| Retail | Retail |
Stable release (default) |
| Release Preview | RP |
Near-final builds |
| Windows Insider Slow | WIS |
Beta channel |
| Windows Insider Fast | WIF |
Dev channel |
| All | All |
Queries all four and deduplicates |
The project includes a build script that handles dependencies, analysis, testing, and packaging.
# Install build dependencies (Pester, PSScriptAnalyzer)
./build.ps1
# Run PSScriptAnalyzer
./build.ps1 -Task Analyze
# Run Pester tests
./build.ps1 -Task Test
# Stage module to build/WinStoreRip/
./build.ps1 -Task Build
# Full CI pipeline (Analyze + Test + Build)
./build.ps1 -Task CI
# Clean build output
./build.ps1 -Task Clean- PowerShell 5.1 or later (Windows PowerShell or PowerShell Core)
Copyright © 2026 Jorge Aguilar. All rights reserved.