어떤 프로그램이 설치되었거나 특정 DLL 파일을 사용하고 있는지 어떻게 알 수 있습니까? 다른 제품 중

한 서버의 SYSTEM32 디렉토리에 DLL 파일이 있는데 실제로 필요하지는 않습니다.

Google에서 일반적으로 사용되는 것을 말했지만이 시스템에는 소프트웨어가 설치되지 않았습니다. 여전히 서버에 설치된 다른 제품 중 하나가 파일을 포함했을 가능성이 있다고 생각합니다.

레지스트리를 통해 파일 이름과 파일의 메타 데이터에서 찾은 일부 문자열을 검색했으며 유익한 정보를 얻을 수 없었습니다. (ACMru 키가 내 눈을 사로 잡았지만 그것이 무엇인지 알 때까지는 )

내가 할 수있는 다른 사람이 무엇인가는 얻는 시스템 자체가 DLL을 설치 어떤 프로그램 말해, 및 / 또는 무엇을 사용하는 것이 프로그램 (들) (있는 경우)를 설치?

참고 : 도구 제안은 훌륭하지만이 시스템에 추가 소프트웨어를 설치하거나 실행하지 않습니다. Server 2003의 기본 설치에서 사용 가능한 모든 작업을 수행해야합니다.



답변

시스템에 배치 된 날짜를 확인하고 시스템의 다른 파일과 비교하여 실마리를 얻습니다. 검색을 통해 날짜별로 전체 시스템을 검색 할 수 있습니다.

또한 파일 이름을 여기에 게시하면 여기에 익숙한 일부 사용자가 파일을 식별 할 수 있습니다.


답변

% SystemRoot % \ Installer 폴더의 각 .MSI 파일을 검사 할 수 있습니다. Windows 설치 프로그램을 통해 설치된 모든 (?) 프로그램은 여기에 MSI를 추가하여 나중에 제거 할 수 있습니다. 폴더에는 일반적으로 많은 것들이 있습니다. 무수한 MSI 패키지 중에서 dll을 찾으면 패키지를 잘 정의 된 이름으로 다시 매핑해야합니다.

스크립트를 사용하여 msi 파일을 디 컴파일하려면이 VBS 도구 ( http://www.hanselman.com/blog/HowToListAllTheFilesInAnMSIInstallerUsingVBSciript.aspx) 를 사용 하거나 MSIDiff라는 프로그램을 사용해보십시오 . //dennisbareis.com/msidiff.htm . 물론 도구를 설치할 필요가 없다는 제약 조건을 고려할 때 후자는 도구와 관련하여 필요하지 않습니다. cscript가 설치되어 있으면 전자가됩니다.

후자의 도구는 적절한 GUID 또는 MSI 파일 이름을 레지스트리에서 수동으로 검색하지 않고도 패키지 이름 매핑을 수행 할 수 있습니다. 참조 할 테이블 / 열을 알고있는 경우 패키지 이름을 덤프하도록 이전 도구를 수정할 수 있습니다 (필요하지 않음).

VBS 스크립트는 데이터베이스 관점에서 간단히 MSI 파일을 검사합니다. 주요 작업은 database.OpenView ( “SELECT FileName FROM File”)로 수행됩니다.


답변

프로세스 모니터 가이를 수행 할 수 있습니다. DLL의 이름으로 필터링하기 만하면 프로그램이로드를 시도 할 때 언급 한 DLL을 찾고 있거나 액세스하는 프로세스를 언급하는 항목이 나타납니다.

부팅 할 때 프로그램과 서비스를로드하는 데 필요한 부팅 로그 (메뉴에서 부팅 로깅을 활성화 한 다음 다시 부팅 한 후 프로세스 모니터를 다시 열어야 함)를 수행해야합니다.