如何使用PowerShell为Windows 10 Universal应用程序创建桌面快捷方式?

时间:2016-07-13 18:46:29

标签: powershell uwp

我有一个我创建的UWP应用程序,并希望使用powershell在桌面上创建快捷方式。

为exe

创建快捷方式很容易
$TargetFile =  "\Path\To\MyProgram.exe"
$ShortcutFile = "$env:USERPROFILE\Desktop\MyShortcut.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $TargetFile
$Shortcut.Save()

但是我正在努力使用通用应用程序的目标。我也知道我可以轻松地手动创建应用程序的快捷方式,但为此目的,需要使用PowerShell来完成。任何想法?

4 个答案:

答案 0 :(得分:3)

为UWP应用创建快捷方式与传统桌面不同。您可以参考我的另一个答案Where linked UWP tile?

要使用powershell在桌面上创建UWP应用程序的快捷方式,您可以使用以下代码:

$TargetFile =  "C:\Windows\explorer.exe"
$ShortcutFile = "$env:USERPROFILE\Desktop\MyShortcut.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.Arguments="shell:AppsFolder\Microsoft.SDKSamples.AdventureWorks.CS_8wekyb3d8bbwe!App"
$Shortcut.TargetPath = $TargetFile
$Shortcut.Save()

您可以使用@TessellatingHeckler提供的链接中的方法找到AppUserModelId,并将代码中的Microsoft.SDKSamples.AdventureWorks.CS_8wekyb3d8bbwe!App替换为您想要的AppUserModelId。

答案 1 :(得分:2)

为了防止您的快捷方式具有标准的“资源管理器”图标。像这样更改$Shortcut.TargetPath

$TargetPath =  "shell:AppsFolder\Microsoft.Windows.Cortana_cw5n1h2txyewy!CortanaUi"
$ShortcutFile = "$Home\Desktop\Cortana.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $TargetPath
$Shortcut.Save()

这样,快捷方式将具有与应用程序相同的图标。

您还可以通过URI创建快捷方式*.url(如果有问题的应用程序支持它)(https://docs.microsoft.com/en-us/windows/uwp/launch-resume/launch-default-app):

$TargetPath =  "ms-cortana:"
$ShortcutFile = "$Home\Desktop\Cortana.url"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $TargetPath
$Shortcut.Save()

答案 2 :(得分:0)

要确定正确的TargetPath https://www.tenforums.com/software-apps/57000-method-open-any-windows-10-apps-command-line.html,请记录所需的步骤:

通过Powershell列出所有应用程序: get-appxpackage > %TEMP%\application_list.txt

打开列表: notepad %TEMP%\application_list.txt

为您的应用找到PackageFamilyName,然后使用Windows资源管理器导航到应用的InstallLocation

打开AppxManifest.xml会显示可执行文件的应用程序ID:<Application Id="Microsoft.WinDbg.DbgSrv64"

合并PackageFamilyName!ApplicationID以形成您的TargetPath

Microsoft.WinDbg_8wekyb3d8bbwe!Microsoft.WinDbg.DbgSrv64例如WinDbg预览。

答案 3 :(得分:0)

我不记得我从哪里获得了这段代码,但这是我所知的寻找路径的最佳途径...

Powershell

$installedapps = get-AppxPackage
foreach ($app in $installedapps)
{
    foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
    {
        $line = $app.Name + " = " + $app.packagefamilyname + "!" + $id
        echo $line
    }
}

...并且为此有一个附加项 How to avoid error when Get-AppxPackageManifest not found