You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Get-StartApps返回的AppID获取Windows10+应用图标

获取Windows应用ID对应的图标与可执行文件路径的官方方法

针对你遇到的问题,官方提供了两种核心思路来获取AppID对应的应用元信息,覆盖桌面应用和UWP应用场景:

一、通过Shell.Application COM对象访问shell:AppsFolder

shell:AppsFolder是Windows系统管理所有应用入口的特殊Shell文件夹,通过COM对象可以直接遍历其中的应用项,提取可执行路径、图标等信息,这是最通用的官方方法。

示例PowerShell代码:

# 初始化Shell对象
$shell = New-Object -ComObject Shell.Application
# 定位到AppsFolder
$appsFolder = $shell.Namespace("shell:AppsFolder")
# 根据AppID获取对应的应用项
$appItem = $appsFolder.ParseName("你的AppID")

# 获取桌面应用的可执行文件绝对路径
$executablePath = $appItem.ExtendedProperty("System.Link.TargetParsingPath")

# 获取图标路径及索引(格式为"路径,索引")
$iconInfo = $appItem.ExtendedProperty("System.Link.TargetIconPath")
if ($iconInfo) {
    $iconPath = $iconInfo.Split(",")[0]
    $iconIndex = [int]$iconInfo.Split(",")[1]
}
  • 对于传统Win32桌面应用,System.Link.TargetParsingPath会直接返回可执行文件的绝对路径;
  • 图标信息中的索引用于处理包含多个图标的文件(如exe、dll),若索引为0,直接使用路径即可提取图标。

二、针对UWP应用的专属处理

如果AppID属于UWP应用(格式通常为包家族名!应用ID),可以结合PowerShell的Get-AppxPackage命令和解析应用清单来获取信息:

示例PowerShell代码:

$targetAppId = "你的AppID"
# 拆分出UWP应用的包家族名
$packageFamilyName = $targetAppId.Split("!")[0]
# 获取应用包信息
$appxPackage = Get-AppxPackage -PackageFamilyName $packageFamilyName

# 获取应用安装目录
$installPath = $appxPackage.InstallLocation

# 解析AppxManifest.xml获取图标路径
$manifestPath = Join-Path $installPath "AppxManifest.xml"
$manifest = [xml](Get-Content $manifestPath)
$relativeLogoPath = $manifest.Package.Applications.Application.VisualElements.Logo
$fullIconPath = Join-Path $installPath $relativeLogoPath
  • UWP应用的可执行文件通常位于安装目录下的AppxManifest.xml指定的入口点,图标则定义在清单的VisualElements节点中。

内容的提问来源于stack exchange,提问作者Michael Aigner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:35:40