답변:
현재보고있는 것은 바로 가기 바로 가기라는 특수 바로 가기입니다. 바로 가기는 실제로 msiexec.exe
Windows Installer 실행 파일에 연결됩니다. 보급 된 바로 가기를 사용하면 설치 관리자가 응용 프로그램의 일부만 설치 한 다음 보급 된 바로 가기를 통해 액세스 할 때 추가 부분을 설치할 수 있습니다. 또한 Windows Installer는 응용 프로그램이 실행될 때마다 설치된 모든 파일의 무결성을 자동으로 확인하므로 응용 프로그램이 실행될 때 유효한지 확인할 수 있습니다.
다음은 알려진 바로 가기에 대한 정보가 더 많은 스택 오버플로 질문 입니다.
바로 가기가 결국 실행되는 실행 파일을 찾는 것은 간단한 작업이 아니며 레지스트리를 파는 것과 관련이 있습니다. 휴의 제안 은 훨씬 간단합니다.
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 Installer와 관련이 있습니다. 실행 파일을 찾으려면 언제든지 실행하고 프로세스 탐색기 를 사용 하여 경로를 얻을 수 C:\Program Files\Microsoft Office2K\Office\WINWORD.EXE
있습니다.
나는 비슷한 문제를 가지고 있었고, 작업 관리자를 사용할 수 있었다 ( Ctrl- Alt- Delete→ 작업 관리자 시작을 에서 (openingit 후) 응용 프로그램 찾기 위해) 응용 프로그램 탭을 선택합니다.
원하는 응용 프로그램을 마우스 오른쪽 단추로 클릭하여 메뉴를 표시하고 프로세스로 이동을 선택하십시오 . 프로세스 탭 에서 앱과 관련된 프로세스가 표시 됩니다.
그런 다음 프로세스를 마우스 오른쪽 버튼으로 클릭하여 메뉴를 표시하고 속성 또는 파일 위치 열기를 선택하여 자세한 내용을 확인하십시오.
모듈을 사용하지 않고 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))
아래 중 하나를 시도하십시오 ( 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 Installer 모듈 설치시 )
get-msiproductinfo | where { $_.ProductState -match "Installed" } | fl AdvertisedProductName, InstallLocation
User Account Control (사용자 계정 컨트롤)이 활성화 된 경우 UAC 상자에 Allow (허용), Cancel (취소)을 묻는 메시지가 표시되면 제목 아래에 "Details (세부 정보)"라는 제목이있는 다른 드롭 다운 화살표가 나타납니다. 세부 사항을 클릭하면 대상의 실제 위치가 표시됩니다.
추신 :이 문제를 기억하면 PS를 지나서도 Windows 7, 7, 과거로 돌아가서 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하면 대상이 표시되지 않는 98이 승리합니다. 그런 다음 앱을 시작하고 작업 관리자를 열고 목록에서 앱을 마우스 오른쪽 버튼으로 클릭하고 프로세스로 이동, 프로세스를 마우스 오른쪽 버튼으로 클릭하고 열린 파일 위치 (또는 때로는 속성)를 선택해야했습니다. 이제 UAC는 더 적은 단계를 수행합니다.
실행 파일의 위치를 찾는 가장 간단한 방법 :