find shortcut targets

This topic contains 0 replies, has 1 voice, and was last updated by  Forums Archives 5 years, 7 months ago.

  • Author
  • #5547

    by rob.irvin at 2013-02-13 16:44:22


    I'm trying to find the target of all the shortcuts that show up on the start menu. So far I have this:

    $sc = Get-ChildItem -recurse "C:\ProgramData\Microsoft\Windows\Start Menu\Programs" -include *.lnk
    $sh = New-Object -COM WScript.Shell

    foreach ($_ in $sc)

    This will list all the targets but what I'm wanting is to have it also list the name of the shortcut along with the target and write it to a text file.

    Something like:
    "my shortcut.lnk"
    "c:\program files\my_application\my_application.exe"

    "c:\program files\my_application2\my_application2.exe"

    I don't really care what format the file is in, I just want to know which target goes with each shortcut file. Any help is appreciated.


    by MattG at 2013-02-13 18:38:52

    Hi Rob,

    Personally, I would craft a custom object consisting of the shortcut name and its target path. I would then write the output to a CSV file using the following code:
    function Get-StartMenuShortcuts
    $Shortcuts = Get-ChildItem -Recurse "$Env:ProgramData\Microsoft\Windows\Start Menu\Programs" -Include *.lnk
    $Shell = New-Object -ComObject WScript.Shell

    foreach ($Shortcut in $Shortcuts)
    $Properties = @{
    ShortcutName = $Shortcut.Name
    Target = $Shell.CreateShortcut($Shortcut).targetpath

    New-Object PSObject -Property $Properties

    [Runtime.InteropServices.Marshal]::ReleaseComObject($Shell) | Out-Null

    $Output = Get-StartMenuShortcuts

    $Output | Export-Csv -LiteralPath .\shortcuts_targets.csv

    by rob.irvin at 2013-02-14 08:39:18

    Thanks! That is exactly what I need. The only thing, when I ran it in Powershell plus IDE, it complained about the last line "-literalPath"
    Anyway I slightly changed the last line and it works perfectly. Thank you so much.

    $Output | Export-Csv -path C:\temp\shortcuts.csv -NoTypeInformation


You must be logged in to reply to this topic.