Como localizar e excluir um atalho em qualquer diretório baseado no destino do atalho?

1

Como se cria um arquivo de lote para pesquisar todos os diretórios e excluir atalhos que apontam para um destino específico (como C:\App\Program.exe ) sem considerar o nome do arquivo?

    
por Laércio Lopes 21.09.2018 / 18:51

1 resposta

0

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
    
por 21.09.2018 / 23:30