如何从Get-AppXPackage输出或AppxManifest.xml中获取Microsoft Store应用URL
如何从Get-AppXPackage输出或AppxManifest.xml中获取Microsoft Store应用URL
刚好我之前也折腾过这个问题,咱们一步步来解决:
首先得明确:默认的Get-AppXPackage输出里并不直接包含Microsoft Store的URL,不过你提到的AppxManifest.xml确实是关键突破口——里面藏着生成Store链接必需的核心ID。
手动提取的步骤
- 从
Get-AppXPackage的结果里找到InstallLocation字段,比如Windows Calculator的路径是C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_10.1809.2731.0_x64__8wekyb3d8bbwe。注意:WindowsApps目录默认有系统权限限制,你可能需要用管理员权限启动PowerShell,或者临时调整文件夹权限才能访问里面的文件。
- 进入这个路径,找到
AppxManifest.xml文件并打开它。 - 在XML里查找
StoreIdentity节点,里面的ProductId就是我们要的关键值——比如计算器的ProductId是9WZDNCRFHVN5。 - 把这个ID拼到Microsoft Store的通用URL模板里:
https://apps.microsoft.com/detail/{ProductId},替换成对应的ID后,就能得到完整的Store链接了,比如计算器的就是https://apps.microsoft.com/detail/9WZDNCRFHVN5。
用PowerShell自动化提取的方法
如果不想手动操作XML文件,也可以用PowerShell一键搞定:
# 获取目标应用的包信息(这里以Windows Calculator为例) $appPackage = Get-AppXPackage -AllUsers *windowscalculator* # 拼接AppxManifest.xml的完整路径 $manifestPath = Join-Path -Path $appPackage.InstallLocation -ChildPath "AppxManifest.xml" # 读取并解析XML内容 $manifestContent = [xml](Get-Content -Path $manifestPath) # 提取StoreIdentity节点下的ProductId $productId = $manifestContent.Package.StoreIdentity.ProductId # 生成并输出Microsoft Store URL $storeUrl = "https://apps.microsoft.com/detail/$productId" Write-Host "应用的Microsoft Store链接:$storeUrl"
运行这段代码就能直接拿到目标应用的Store链接啦。
小补充:少数较旧的AppX包可能没有StoreIdentity节点,这时可以试试用Identity节点的Name属性来拼接,但大部分现代Store应用都会有ProductId,这个方法更可靠。
备注:内容来源于stack exchange,提问作者cachius




