Você precisa chamar o método Save
do objeto de atalho para armazenar o atalho como um arquivo.
$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()
Veja também:
- Todos os exemplos de código em a pergunta você está se referindo a
- KB 244677 Como criar um atalho na área de trabalho com o Windows Script Host
- Guia de scripts do Microsoft Windows 2000. Como trabalhar com atalhos