DLL이 등록되었는지 어떻게 알 수 있습니까?


28

오래된 컴퓨터 (Windows XP)에서 DLL을 등록 할 때 regsrv는 항상 등록에 성공했다고 말합니다. 사용자에게 등록 권한이없는 경우에도 마찬가지입니다.

dll 이름으로 DLL이 설치되어 있는지 확인하기 위해 명령 줄에서 실행할 수있는 명령이 있습니까?

답변:


22

이 링크를 찾았 습니다. DLL이 등록되었는지 어떻게 알 수 있습니까? :

DLL 등록이 임의의 작업을 포함 할 수 있다는 점에서 임의의 DLL에 대한 등록이 발생했는지 여부를 결정하는 일반적인 방법은 없습니다.

DLL이 등록되었는지 확인하려면 도메인 별 지식을 가져와야합니다. DLL이 특정 CLSID에 COM 개체를 등록한다는 것을 알고 있으면 CLSID가 실제로 등록되었는지 확인할 수 있습니다.

좋습니다. 불가능하지만 DLL은 일반적으로 레지스터에 항목을 생성하여 스스로 등록합니다. 해결 방법은 다음과 같습니다.

  1. 먼저 DLL의 COM GUID를 발견해야합니다. 이미 등록 된 기계가 하나 인 경우 다음을 수행 할 수 있습니다.
    1. regedit를 열고 DLL 파일 이름을 검색하십시오.
    2. 등록 된 경우 TypeLib 아래에있는 키 아래에 파일 이름이 있습니다. 키는 다음과 같습니다. {9F3DBFEE-FD77-4774-868B-65F75E7DB7C2}
  2. 이제 DLL GUID를 알았으므로 DOS 프롬프트에서이 명령으로 검색 할 수 있습니다. reg query HKCR\CLSID | find /i "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"

더 나은 대답은 파일을 등록하기 전에 파일에서 직접 GUID를 찾을 수있게 해줍니다. 최소한이 방법으로 스크립트를 작성하여 설치하고 성공적으로 설치되었는지 확인할 수 있습니다.


4
실제로 GUID를 알 필요는 없습니다. 보다 간단한 방법은 레지스트리에서 DLL 파일 이름 을 검색하는 것입니다 . 해당 이름이 GUID 키 중 하나에 나열되어 있으면 DLL이 실제로 등록 된 것입니다.
Massimo

@Massimo : 그러나 어떻게 검색합니까? 어느 열쇠? 그것은 잘못 (예는 관리자없이 등록하려고) 쉘 역사에 표시 할 수 있습니다
네 베스

HKCR에서 분명히 :) 또는 최소한 HKLM에서. 셸 기록과 같은 사용자 별 항목은 HKCU에 있습니다.
Massimo

@Massimo : 쉘 명령을 사용하여 여기에 답을 넣으면 정답으로 표시합니다.
네 베스

REG QUERYDLL 파일 이름을 찾는 데 사용하십시오 .
Massimo

13

특정 이름의 DLL이 등록되어 있는지 확인하고 BAT에서이 명령을 사용했습니다.

reg query HKLM\SOFTWARE\Classes /s /f whatever.dll
if errorlevel 1 goto DLL_MISSING

오류 수준이있는 경우 reg query아무것도 발견 할 때마다 컨트롤을 레이블로 보냈습니다 . 검색 할 레지스트리 부분을 변경해야 할 수도 있습니다 (제 경우 HKLM'...에는 더 구체적인 경로가 빠를수록 그렇지 않으면 실제로 오래 걸립니다).

필요한 경우 출력을 처리 할 수 ​​있으며 항목의 GUID를 얻을 수 있지만 reg query 명령의 범위를 벗어납니다.


0

커맨드 라인에서 DLL에 대한 레지스트리 항목 (및 선택적으로 COM 객체)을 찾으려면 @ virgo47과 @neves의 대답이 가장 효과적이었습니다.

  1. DLL 이름이 포함 된 레지스트리 항목을 찾으십시오. 이러한 항목은 일반적으로 GUID를 해당 키로 사용합니다.

    reg 쿼리 HKLM \ SOFTWARE \ Classes / s / f whatever.dll

  2. (선택 사항) 이러한 GUID에 등록 된 COM 개체를 찾습니다. (사용 /s /f "{GUID}"속도가 | findstr /i "{GUID}". 보다 빠릅니다 . | find /i "{GUID}"오타 인 것 같습니다 (그러나 Serverfault에 대해서는 아직 의견을 쓸 수 없습니다).)

    reg 쿼리 HKCR \ CLSID / s / f "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.