Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
A shortcut gives me a weird path for a program shortcut that doesn't point to the executable, so what is it? 섬네일

A shortcut gives me a weird path for a program shortcut that doesn't point to the executable, so what is it?

Microsoft Developer faviconMicrosoft Developer·Architecture·
Windows InstallerMSIIShellLinkMsiGetShortcutTargetMsiGetComponentPath
2025년 12월 19일0

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

Microsoft Developer의 글은 MSI 설치 기반 바로가기를 식별하고 정보를 얻는 방법과 역동작 원리를 설명합니다.

구현 방법

  • IShellLink::GetPath 및 IShellLink::Resolve의 동작이 설치 여부를 판단하고, 일부 바로가기가 실행 파일 경로 대신 설치를 요구하는 MSI 온-디맨드 동작으로 작동하는 원리를 설명
  • SLDF_HAS_DARWIN_ID 플래그로 MSI 바로가기를 식별하는 방법
  • MSI 도구인 MsiGetShortcutTarget를 사용해 MSI 제품 코드, 기능 ID, 구성요소 코드를 획득하는 절차
  • MsiGetComponentPath를 통해 설치 시 구성요소 경로를 얻는 방법
  • EXP_DARWIN_ID_SIG 데이터 블록을 CopyDataBlock로 얻어 EXP_DARWIN_LINK의 szDarwinID와 szwDarwinID를 확인하는 절차
  • Resolve의 SLR_INVOKE_MSI 플래그를 사용하면 실제로 MSI를 설치하도록 강제할 수 있으나 남용 위험이 있음
  • 구성 경로와 바로가기가 다를 수 있으며, 바로가기에 포함된 명령줄 인수가 MSI 패키지에서 정의된 값임에 유의

주요 결과

  • MSI 바로가기를 식별하고 대상 정보를 얻는 체계가 설명되어, 인벤토리 도구가 설치 UI를 트리거하지 않도록 정보를 우회하는 방법을 이해할 수 있음
  • MSIShortcutTarget를 통해 설치 여부와 구성 요소 정보를 얻는 구체적 방법이 제시됨
  • 원시 MSI 서술자에 대한 액세스 방법(EXP_DARWIN_ID_SIG)도 소개되어 확장 활용 가능성이 높아짐

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
How can I detect that Windows is running in S-Mode, redux 섬네일
59%

How can I detect that Windows is running in S-Mode, redux

Microsoft Developer faviconMicrosoft Developer·2025년 11월 17일
Studying the various locale mismatch scenarios in Windows clipboard text format synthesis 섬네일
59%

Studying the various locale mismatch scenarios in Windows clipboard text format synthesis

Microsoft Developer faviconMicrosoft Developer·2025년 12월 11일
Making Windows Terminal awesome with GitHub Copilot CLI 섬네일
58%

Making Windows Terminal awesome with GitHub Copilot CLI

Microsoft Developer faviconMicrosoft Developer·2025년 12월 11일