Windows 7 находит местоположение установленной программы

26

Обычно в Windows XP, если я хочу узнать местоположение установленной программы, я просто нажимаю «Свойства», и она показывает, где находится исполняемый файл.

В Windows 7 я делаю то же самое и получаю следующее:

альтернативный текст

Как я могу узнать, где находятся программы, основываясь на ярлыке? Однако я заметил, что для некоторых программ в «Target» отображается ярлык, но не в случае с iTunes, например.

7wp
источник
Для тех, кто приезжает сюда, у которых нет ярлыка - просто
поищите

Ответы:

21

То, что вы видите, это специальные ярлыки, называемые Advertised Shortcuts. Ярлыки фактически ссылаются на msiexec.exeисполняемый файл установщика Windows. Рекламируемые ярлыки позволяют авторам установщика устанавливать только части своего приложения, а затем устанавливать дополнительные части, когда к ним обращаются через объявленный ярлык. Установщик Windows также автоматически проверяет целостность всех установленных файлов при каждом запуске приложения, поэтому вы можете быть уверены, что приложение действительно при запуске.

Вот вопрос переполнения стека с немного большей информацией о рекламируемых ярлыках.

Поиск исполняемого файла, который в конечном итоге запускает ярлык, - непростая задача, которая потребует некоторого перебора реестра. Предложение Хью, вероятно, гораздо проще.

heavyd
источник
Хорошая деталь поддержки там +1 от меня
Джо Тейлор
Это отличный ответ для использованного примера, но он не отвечает на первоначальный вопрос: «Windows 7 находит местоположение установленной программы». Каким-то образом это стало вопросом «объявленных ярлыков». Я просто хочу выяснить, где находится программа, чтобы я могу переместить его с моего диска c: на другой диск, на котором есть место (или я хочу запустить программу из командной строки по какой-либо причине). Я узнал, что MS предпочитает скрывать основной путь по разным причинам, ОДИН из которых является это «ссылка рекламодателя», где буквально нет пути.
Малкольм Андерсон
17

Я удивлялся тому же для некоторых ярлыков под win XP. Я попробовал Cygwin , readshortcutно он не сказал мне настоящую цель:

$ readshortcut.exe -fa "Microsoft Word.lnk"
Target: /cygdrive/c/WINDOWS/Installer/{00000409-78E1-11D2-B60F-006097C998E7}/wordicon.exe
Working Directory:
Arguments:
Show Command: Normal
Icon Library: /cygdrive/c/WINDOWS/Installer/{00000409-78E1-11D2-B60F-006097C998E7}/wordicon.exe
Icon Library Offset: 0
Description: Create and edit text and graphics in letters, reports, Web pages, or e-mail messages by using Microsoft Word.

Так что они, очевидно, как-то связаны с установщиком Windows. Для того, чтобы найти исполняемый файл, вы всегда можете просто запустить его и использовать Process Explorer , чтобы получить путь - в моем случае, C:\Program Files\Microsoft Office2K\Office\WINWORD.EXE.

Хью Аллен
источник
7
+1 и это работает, но это ужасно для безопасности. Если подозрительное приложение появилось на компьютере, и вы хотели знать, на что указывает ярлык, не запустив его, Microsoft должна была упростить эту задачу. Но были оставлены наши собственные устройства, прыгающие через обручи. Как мы можем даже направить маленькую старую бабушку по телефону, чтобы сделать это. Rant over
7
7

У меня была похожая проблема, и я смог использовать диспетчер задач ( Ctrl- Alt- DeleteЗапуск диспетчера задач ), чтобы найти приложение (после его открытия) на вкладке Приложения .

Щелкните правой кнопкой мыши нужное приложение, чтобы открыть меню, и выберите « Перейти к процессу» . Это показывает, какой процесс связан с приложением на вкладке Процессы .

Затем щелкните правой кнопкой мыши процесс, чтобы вызвать меню, и выберите « Свойства» или « Открыть местоположение файла», чтобы узнать больше.

user207224
источник
6

Для тех, кто хочет сделать это в PowerShell без использования модуля:

$lnk = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Adobe\Adobe Acrobat X Pro.lnk"
$WindowsInstaller = New-Object -ComObject WindowsInstaller.Installer
$ShortcutTarget = $WindowsInstaller.GetType().InvokeMember("ShortcutTarget","GetProperty",$null,$WindowsInstaller,$lnk)
$StringData1 = $ShortcutTarget.GetType().InvokeMember("StringData","GetProperty",$null,$ShortcutTarget,1)
$StringData3 = $ShortcutTarget.GetType().InvokeMember("StringData","GetProperty",$null,$ShortcutTarget,3)
$WindowsInstaller.GetType().InvokeMember("ComponentPath","GetProperty",$null,$WindowsInstaller,@($StringData1,$StringData3))
user334199
источник
нам нужны такие ответы, как моар ... WOO POWERSHELL
Nacht - Восстановить Монику
2

Попробуйте любое из нижеприведенного (с форумов Tek-Tips ):

VBScript

' GetRealTarget.vbs
' This version needs to be run under wscript engine rather than cscript

' Pass the full path to an MSI "Advertised Shortcut" lnk file (including the extension) as a parameter
' e.g. assuming that we have a default install of Office 2003 for All Users:
' GetRealTarget "C:\Documents and Settings\All Users\Start Menu\Programs\Microsoft Office\Microsoft Office Excel 2003.lnk" 
' Displays fully resolved target for the MSI shortcut

Option Explicit
Dim MSITarget

On Error Resume Next ' just some simple error handling for purposes of this example
If wscript.arguments.count = 1 Then ' did actually pass an MSI advertised shortcut? Or, at least, a parameter that could be such a thing?
   With CreateObject("WindowsInstaller.Installer")
      Set MSITarget = .ShortcutTarget(wscript.arguments(0))
      If Err = 0 then
         MsgBox .ComponentPath(MSITarget.StringData(1), MSITarget.StringData(3))
      Else 
         MsgBox wscript.arguments(0) & vbcrlf & "is not a legitimate MSI shortcut file or could not be found"
      End If
   End With
End If
On Error Goto 0

PowerShell (с установкой этого модуля установщика Windows )

get-msiproductinfo | where { $_.ProductState -match "Installed" } | fl AdvertisedProductName, InstallLocation
user66001
источник
2

открыто regedit и найдите имя программы. Это займет несколько «поиск снова» ( F3), но в конечном итоге вы найдете папку.

В моем случае это было под HKEY_CLASSES_ROOT\Applications\<name of app>\shell\open\command

Марсело Трехо
источник
Также из этого SO ответа - смотритеHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
icc97
0

Если у вас активен контроль учетных записей, то при появлении окна UAC с запросом «Разрешить», «Отмена» под ним часто отображается стрелка раскрывающегося списка (пропускаемая многими) с заголовком «Подробности». Если вы нажмете на Детали, вы увидите фактическое местоположение цели.

PS Если я вспоминаю, что эта проблема уходит далеко за пределы Windows 7, даже после XP, чтобы выиграть 98, где щелчок правой кнопкой мыши по ярлыку и выбор свойств часто не показывают цель. Затем нам нужно было запустить приложение, открыть диспетчер задач, щелкнуть правой кнопкой мыши приложение в списке, выбрать перейти к процессу, щелкнуть правой кнопкой мыши процесс, выбрать местоположение открытого файла (или иногда свойства). Теперь UAC делает меньше шагов.

user503911
источник
0

Уловка, которая может работать, состоит в следующем: Запустите CMD и запустите:

dir C: \ iTunes / s / b

Он будет сообщать о любом файле или каталоге с именем «iTunes» (без учета регистра). Если у вас есть более одного фиксированного диска, может потребоваться повторить также для этого диска.

Или вы можете создать файл в «неизвестной папке» (здесь: iTunes), а затем найти этот файл на диске:

dir C: \ * testfilenumber1 * / s / b

ТВЦ
источник
-1

Самый простой способ узнать место исполняемого файла:

  1. Найдите программу в меню «Пуск» и переместите ее на рабочий стол, используя правую кнопку мыши. Это создает ссылку.
  2. Наведите курсор на ссылку и щелкните правой кнопкой мыши. Выберите «Свойства»
  3. На этом экране у вас есть полный путь к исполняемому файлу. Скопируйте в буфер и вставьте, когда вам нужно.
user396877
источник
Поиск программы в меню «Пуск» побеждает цель. Кроме того, если вы найдете его в меню «Пуск» много раз, вы увидите вместо него ярлык «Рекламируемый ярлык». Первоначальный вопрос заключался в том, как получить прямой ярлык для физического исполняемого файла из специального типа «Advertised Shortcut».
7
Для моих целей это был лучший ответ. Почему он имеет ранг -2 (на данный момент, 28 апреля 2018 года), я не знаю. Информация о ссылках рекламодателя была интересной, и теперь я знаю, что могу удалить этот спам, и мне больше не нужно искать приложение, потому что его нет на моем жестком диске. Временами я просто хочу иметь возможность перейти к исполняемому файлу. Этот совет (переместите ярлык на рабочий стол с помощью щелчка правой кнопкой мыши - и проверьте свойства THAT) полезен, и я голосую за него, потому что он мне помог.
Малкольм Андерсон,