DEV Community

loading...

download Windows Store apps with PowerShell over https://store.rg-adguard.net/

kaiwalter profile image Kai Walter ・1 min read

Especially in enterprise environments installing apps from Windows Store is turned off. One workaround is web site https://store.rg-adguard.net/ - courtesy of @rgadguard & mkuba50 - which can be used to download files related to a particular store app.

How to find a product URL

  • go into store (probably on a machine where store is not locked)
  • search for app
  • click Share
  • Copy Link
  • paste into input field right of URL Link

Alt Text

Script

I created this script where I can use the product URL obtained above and download a set of related files for a local install:

$apiUrl = "https://store.rg-adguard.net/api/GetFiles"

$productUrl = "https://www.microsoft.com/store/productId/9nblggh5r558" # To Do
#$productUrl = "https://www.microsoft.com/store/productId/9MSPC6MP8FM4" # Whiteboard
#$productUrl = "https://www.microsoft.com/store/productId/9WZDNCRFJBB1" # Wireless Display Adapter

$downloadFolder = Join-Path $env:TEMP "StoreDownloads"
if(!(Test-Path $downloadFolder -PathType Container)) {
    New-Item $downloadFolder -ItemType Directory -Force
}

$body = @{
    type = 'url'
    url  = $productUrl
    ring = 'RP'
    lang = 'en-US'
}

$raw = Invoke-RestMethod -Method Post -Uri $apiUrl -ContentType 'application/x-www-form-urlencoded' -Body $body

$raw | Select-String '<tr style.*<a href=\"(?<url>.*)"\s.*>(?<text>.*)<\/a>' -AllMatches
| % { $_.Matches }
| % { 
    $url = $_.Groups[1].Value
    $text = $_.Groups[2].Value

    if($text -match "_(x64|neutral).*appx(|bundle)$") {
        Write-Host $text $url
        $downloadFile = Join-Path $downloadFolder $text
        Invoke-WebRequest -Uri $url -OutFile $downloadFile
    }
}

Enter fullscreen mode Exit fullscreen mode

Discussion (0)

pic
Editor guide