PowerShell Get-AdvertisedShortcut

После того, как я узнал, что иногда объекты ярлыков не могут запрашиваться объектом WScript.Shell , но в случае рекламируемых ярлыков необходимо запрашивать объект WindowsInstaller.Installer , я провел поиск в Интернете и нашел многообещающее решение ниже.

Но либо решение устарело, либо написано для другой версии Windows (я использую PowerShell 5.1 на 64-битной Windows 10). Это дает мне только следующее сообщение об ошибке для рекламируемых ярлыков, таких как %AppData%\Microsoft\Windows\Start Menu\Programs\System Tools*.lnk:

Ausnahme beim Aufrufen von "InvokeMember" mit 5 Argument(en): "ShortcutTarget"

что буквально переводится как:

Исключение при вызове «InvokeMember» с 5 аргументами: «ShortcutTarget»

Кроме того, я вижу следующие строки без дополнительной информации для меня:

    + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId: COMException

К сожалению, я не знаю, где искать правильный синтаксис, и не нашел ничего, кроме приведенного ниже кода для решения исходной проблемы получения цели рекламируемого ярлыка.

Любые идеи, где я могу посмотреть дальше?

Код с https://www.alkanesolutions.co.uk/2020/06/03/use-powershell-to-find-an-advertised-shortcut-target:

      function Get-AdvertisedShortcut {
    param([string]$pathToLnk)
    $shortcutTarget = ""
    if ($pathToLnk -ne $null -and (test-path $pathToLnk)) {    
        $windowsInstaller = New-Object -ComObject WindowsInstaller.Installer
        $lnkTarget = $WindowsInstaller.GetType().InvokeMember("ShortcutTarget","GetProperty",$null,$windowsInstaller,$pathToLnk)
        $productCode = $lnkTarget.GetType().InvokeMember("StringData","GetProperty",$null,$lnkTarget,1)
        $componentCode = $lnkTarget.GetType().InvokeMember("StringData","GetProperty",$null,$lnkTarget,3)
        $shortcutTarget = $WindowsInstaller.GetType().InvokeMember("ComponentPath","GetProperty",$null,$WindowsInstaller,@($productCode,$componentCode))        
    }
    return $shortcutTarget
}

0 ответов

Другие вопросы по тегам