如何使用 PowerShell 在桌面上创建快捷方式

如何使用 PowerShell 在桌面上创建快捷方式

我一直在参考这个帖子编写我的 PowerShell 脚本,但它似乎不起作用。


$linkPath        = Join-Path ([Environment]::GetFolderPath("Desktop")) "My shortcut.lnk"
$targetPath      = Join-Path ([Environment]::GetFolderPath("MyDocuments")) "...\run.exe"
$link            = (New-Object -ComObject WScript.Shell).CreateShortcut($linkPath)
$link.TargetPath = $targetPath

它只在输出窗格中打印出代码,但似乎从未完全执行;桌面上没有显示任何快捷方式。

答案1

您需要调用Save快捷方式对象的方法将快捷方式实际存储为文件。

$linkPath        = Join-Path ([Environment]::GetFolderPath("Desktop")) "My shortcut.lnk"
$targetPath      = Join-Path ([Environment]::GetFolderPath("MyDocuments")) "...\run.exe"
$link            = (New-Object -ComObject WScript.Shell).CreateShortcut($linkPath)
$link.TargetPath = $targetPath

$link.Save()

也可以看看:

答案2

如果您想自动化并随时创建快捷方式,这里有一个脚本可以帮助您做到这一点。

该脚本将像一个应用程序一样工作,等待您输入数据用户和远程 PC 名称,在 #example 下的行中,您需要根据需要替换 [] 内的所有内容,您也可以(我建议)复制 #example 行以一次创建多个快捷方式。

$ErrorActionPreference = "SilentlyContinue"

  function shortcut
{
    param
  ( 
    $DestinationPath,   
    $source,
    $icon
  )

  # CODE

  $WshShell = New-Object -ComObject WScript.shell
  $shortcut = $WshShell.CreateShortcut($DestinationPath)
  $shortcut.TargetPath = $Source
  $shortcut.iconlocation = $Icon
  $Shortcut.Save() 
}

$DestinationPath = read-host "Host"
$User = read-host "User"

#Example

shortcut "\\$DestinationPath\c$\users\$user\desktop\[your shortcut.lnk]" "[source for your shortcut]" "[icon path if needed]"    

if(Test-Path "\\$DestinationPath\c$\users\$user\desktop\[your shortcut.lnk]")
{Write-host "`nShortcut created: [your shortcut]`nHost:$DestinationPath`nUser:$user`n" -ForegroundColor Green}

else{write-host "Shortcut couldn't be created in $DestinationPath"}

相关内容