2013-03-26 3 views
1

내 관리자가 msi가 설치된 컴퓨터에서 구성 파일 목록을 내게주었습니다.설치된 파일에서 어떤 msi가 파일을 설치했는지 확인하는 방법은 무엇입니까?

그리고 그는 그들이 어떤 msi에서 왔는지를 묻습니다. (왜냐하면 우리는 msi에 대한 몇 가지 논리를 작성해야하기 때문입니다).

이 파일이있는 msi를 찾는 방법은 무엇입니까?

수동으로 orca에서 열면 msi 수가 더 많으므로 찾기가 어렵습니다.

다른 대체 방법이 있습니까? 우리는 msi를 만들기 위해 Wix를 사용하고 있습니다.

답변

1

일치하는 해시를 찾을 때까지 .config 파일의 MD5 해시를 가져 와서 .msis의 MsiFileHash 테이블을 쿼리합니다.

+0

MSI에는 RPM (rpm -qf)과 같은 기능이 없습니다. –

1

MSI가 파일을 설치했다고 보장 할 수 없습니다.

CD %WINDIR%\Installer 
FINDSTR -i -m dark.exe *.msi *.msi 

이 모든 전역의 대소 문자를 구분 검색을 할 것입니다 : 제가 아주 많이 사용하는 것, 상기 한 빠른 해킹 설치된 설정 파일과 컴퓨터에 MS-DOS에서 findstr 명령

입니다 dark.exe 문자열의 MSI 파일 그런 다음 ORCA를 사용하여 결과 MSI (들)을 검사하여 적중이 정확하고 어떤 제품인지 확인하십시오. 주의 사항 : MSI 이름은 일부 짧은 16 진수입니다. 이는 원래 MSI가 아닌 제거 된/캐시 된 MSI이기 때문입니다.

0

컴퓨터에서 코드를 실행할 수 있으면 Windows Installer API를 사용하는 유틸리티가 대답을 제공합니다. 이러한 유틸리티는 VC++로 쉽게 작성됩니다.

Windows Installer API의 시작 지점은 MsiEnumComponents이며 시스템에 설치된 모든 구성 요소의 구성 요소 코드를 제공합니다. 여기에서 MsiEnumClients은 특정 구성 요소가 포함 된 모든 제품에 대한 제품 코드를 제공합니다. 그런 다음 MsiGetComponentPath을 사용하여 구성 요소의 경로를 가져올 수 있습니다. 당신이에 관심이있는 경로가 있다면, 그것은 복잡한 소리 같은

INSTALLPROPERTY_INSTALLSOURCE로하고 INSTALLPROPERTY_PACKAGENAME.을 설치 한 제품에 대해 알아 MsiGetProductInfoEx를 사용하지만 그렇지 않다.

관련 문제