Você pode começar fazendo uma varredura de arquivos * .lnk e usar funções do PowerShell para uma introspecção limpa de cada atalho. Como essa função que examina a pasta pública do Desktop, encontrada na MS technet; Não é uma solução pronta, mas acho que você se diverte fazendo isso ...
function Get-DesktopShortcuts{
$Shortcuts = Get-ChildItem -Recurse "C:\users\public\Desktop" -Include *.lnk
$Shell = New-Object -ComObject WScript.Shell
foreach ($Shortcut in $Shortcuts)
{
$Properties = @{
ShortcutName = $Shortcut.Name;
ShortcutFull = $Shortcut.FullName;
ShortcutPath = $shortcut.DirectoryName
Target = $Shell.CreateShortcut($Shortcut).targetpath
}
New-Object PSObject -Property $Properties
}
[Runtime.InteropServices.Marshal]::ReleaseComObject($Shell) | Out-Null
}
$Output = Get-DesktopShortcuts
$Output | Out-GridView