给定AppUserModelID(AUMID) 有没有办法从这些数据中获取应用程序名称(不试图在AppUserModelID上进行一些字符串操作)?
我正在寻找api电话来处理这种或那种性质的东西。
在下面的案例中,应用程序名称将为“Microsoft Edge”
<start:Tile Size="2x2" Column="0" Row="2" AppUserModelID="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
如何更改以下代码以接受AUMID而不是appname。
function Pin-App { param(
[string]$appname,
[switch]$unpin
)
try{
if ($unpin.IsPresent){
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'Unpin from Start'} | %{$_.DoIt()}
return "App '$appname' unpinned from Start"
}else{
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'Pin to Start'} | %{$_.DoIt()}
return "App '$appname' pinned to Start"
}
}catch{
Write-Error "Error Pinning/Unpinning App! (App-Name correct?)"
}
}
这个powershell功能可以通过提供“Microsoft Edge”作为appname来实现。
答案 0 :(得分:1)
如果您希望在shell:AppsFolder
中通过Path
属性而不是名称来查找AUMID过滤器中的商店/ UWP应用程序。对于商店应用,Path
属性包含应用的AUMID。
请注意,对于桌面应用,Path
属性提供了可执行文件的实际路径。
不是试图从AUMID中找到应用程序名称,而只是按照AUMID添加它们。
哎呀:
function Pin-App { param(
[string]$aumid,
[switch]$unpin
)
try{
if ($unpin.IsPresent){
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Path -eq $aumid}).Verbs() | ?{$_.Name.replace('&','') -match 'Unpin from Start'} | %{$_.DoIt()}
return "App '$aumid' unpinned from Start"
}else{
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Path -eq $aumid}).Verbs() | ?{$_.Name.replace('&','') -match 'Pin to Start'} | %{$_.DoIt()}
return "App '$aumid' pinned to Start"
}
}catch{
Write-Error "Error Pinning/Unpinning App! (App-Name correct?)"
}
}