Как создать ярлык на рабочем столе с помощью 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

он только печатает код в области вывода, но никогда не кажется полностью выполнить; ярлык не появляется на рабочем столе.

27
задан Community
02.01.2023 12:57 Количество просмотров материала 3429
Распечатать страницу

2 ответа

нужно позвонить 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()

Читайте также:

5
отвечен grawity 2023-01-03 20:45

Если вы хотите автоматизировать и создать ярлыки, когда вы хотите, вот скрипт, который может помочь вам сделать это.

скрипт будет работать как приложение, ожидающее ввода данных пользователя и имени удаленного ПК, в строках под #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"}
1
отвечен Felipe Santos 2023-01-03 23:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх