如何用命令行打开UWP应用

需求

在微软商店中安装的 UWP 应用,如果通过任务管理器直接找到其 exe 并启动,是无法正常启动的。

直接双击无法启动

解决思路

希望启动的应用是 Watt toolkit

使用如下 powershell 命令

1
$app=  Get-AppxPackage |? { (Get-AppxPackageManifest -Package $_.PackageFullName).Package.Properties.DisplayName -like "*Watt*" }

可以获取到所有包含 Watt 名称的 UWP 应用的 PackageFullName, PackageFamilyNameApplications.Application.Id

1
2
3
4
5
6
7
8
9
10
11
12
13

$app.PackageFullName

# 4651ED44255E.47979655102CE_3.1.2025.0_x64__k6txddmbb6c52

$app.PackageFamilyName

# 4651ED44255E.47979655102CE_k6txddmbb6c52

(Get-AppxPackageManifest $app).Package.Applications.Application.Id

# App

使用如下 powershell 命令启动 UWP 应用:

1
explorer.exe shell:appsFolder\4651ED44255E.47979655102CE_k6txddmbb6c52!App

格式是:

explorer.exe shell:appsFolder\<PackageFamilyName>!<AppId>

进一步写成 PowerShell 函数的形式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<#
.SYNOPSIS
搜索并启动指定关键词的 UWP 应用

.DESCRIPTION
根据传入的关键词(默认是 Watt),搜索系统中显示名称包含该关键词的 UWP 应用,并启动第一个匹配的应用
支持自定义关键词、静默执行、显示详细信息等参数

.PARAMETER SearchKeyword
要搜索的应用名称关键词(默认值:Watt)
示例:-SearchKeyword "Edge" 会搜索名称包含 Edge 的 UWP 应用

.PARAMETER Silent
是否静默执行(不输出多余信息,仅在出错时提示)
开关参数,直接使用 -Silent 即可

.PARAMETER ShowDetails
是否显示匹配应用的详细信息(包名、应用ID等)
开关参数,直接使用 -ShowDetails 即可

.EXAMPLE
Start-UwpApp
# 搜索并启动名称包含 Watt 的 UWP 应用

.EXAMPLE
Start-UwpApp -SearchKeyword "OneNote"
# 搜索并启动名称包含 OneNote 的 UWP 应用

.EXAMPLE
Start-UwpApp -SearchKeyword "Todo" -Silent
# 静默模式启动名称包含 Todo 的 UWP 应用

.EXAMPLE
Start-UwpApp -SearchKeyword "Watt" -ShowDetails
# 启动 Watt 应用并显示详细的应用信息
#>
function Start-UwpApp {
[CmdletBinding()]
param (
[Parameter(Mandatory = $false)]
[string]$SearchKeyword = "Watt",

[Parameter(Mandatory = $false)]
[switch]$Silent,

[Parameter(Mandatory = $false)]
[switch]$ShowDetails
)

# 定义内部输出函数(根据 Silent 参数控制是否输出)
function Write-Info {
param(
[string]$Message,
[ConsoleColor]$Color = [ConsoleColor]::White
)
if (-not $Silent) {
Write-Host $Message -ForegroundColor $Color
}
}

try {
# 1. 搜索匹配关键词的 UWP 应用
Write-Info "正在搜索名称包含 '$SearchKeyword' 的 UWP 应用..." -Color Cyan
$matchingApps = Get-AppxPackage | Where-Object {
$manifest = Get-AppxPackageManifest -Package $_.PackageFullName -ErrorAction Stop
$manifest.Package.Properties.DisplayName -like "*$SearchKeyword*"
}

# 检查是否找到应用
if (-not $matchingApps -or $matchingApps.Count -eq 0) {
$errorMsg = "未找到名称包含 '$SearchKeyword' 的 UWP 应用!"
if ($Silent) {
Write-Error $errorMsg
} else {
Write-Host $errorMsg -ForegroundColor Red
}
return
}

# 取第一个匹配的应用(避免多应用冲突)
$targetApp = $matchingApps[0]
$packageFamilyName = $targetApp.PackageFamilyName
$appId = (Get-AppxPackageManifest $targetApp -ErrorAction Stop).Package.Applications.Application.Id

# 显示详细信息(如果指定了 ShowDetails)
if ($ShowDetails -or (-not $Silent)) {
Write-Info "`n找到的应用信息:" -Color Green
Write-Info "应用显示名称:$((Get-AppxPackageManifest $targetApp).Package.Properties.DisplayName)" -Color Green
Write-Info "PackageFullName: $($targetApp.PackageFullName)" -Color Green
Write-Info "PackageFamilyName: $packageFamilyName" -Color Green
Write-Info "Application Id: $appId`n" -Color Green
}

# 3. 构建并执行启动命令
$launchUri = "shell:appsFolder\$packageFamilyName!$appId"
Write-Info "正在启动应用:$launchUri" -Color Cyan
Start-Process explorer.exe -ArgumentList $launchUri -ErrorAction Stop

Write-Info "`n应用启动命令已执行!" -Color Green
}
catch {
# 捕获并显示错误信息
$errorMsg = "执行过程中出现错误:$($_.Exception.Message)"
if ($Silent) {
Write-Error $errorMsg
} else {
Write-Host $errorMsg -ForegroundColor Red
}
return
}
}


Start-UwpApp -SearchKeyword "Watt" -ShowDetails

参考


如何用命令行打开UWP应用
https://taylorandtony.github.io/2026/03/31/如何用命令行打开UWP应用/
作者
TaylorAndTony
发布于
2026年3月31日
许可协议