오래된 컴퓨터 (Windows XP)에서 DLL을 등록 할 때 regsrv는 항상 등록에 성공했다고 말합니다. 사용자에게 등록 권한이없는 경우에도 마찬가지입니다.
dll 이름으로 DLL이 설치되어 있는지 확인하기 위해 명령 줄에서 실행할 수있는 명령이 있습니까?
답변
이 링크를 찾았 습니다. DLL이 등록되었는지 어떻게 알 수 있습니까? :
DLL 등록이 임의의 작업을 포함 할 수 있다는 점에서 임의의 DLL에 대한 등록이 발생했는지 여부를 결정하는 일반적인 방법은 없습니다.
DLL이 등록되었는지 확인하려면 도메인 별 지식을 가져와야합니다. DLL이 특정 CLSID에 COM 개체를 등록한다는 것을 알고 있으면 CLSID가 실제로 등록되었는지 확인할 수 있습니다.
좋습니다. 불가능하지만 DLL은 일반적으로 레지스터에 항목을 생성하여 스스로 등록합니다. 해결 방법은 다음과 같습니다.
- 먼저 DLL의 COM GUID를 발견해야합니다. 이미 등록 된 기계가 하나 인 경우 다음을 수행 할 수 있습니다.
- regedit를 열고 DLL 파일 이름을 검색하십시오.
- 등록 된 경우 TypeLib 아래에있는 키 아래에 파일 이름이 있습니다. 키는 다음과 같습니다. {9F3DBFEE-FD77-4774-868B-65F75E7DB7C2}
- 이제 DLL GUID를 알았으므로 DOS 프롬프트에서이 명령으로 검색 할 수 있습니다.
reg query HKCR\CLSID | find /i "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"
더 나은 대답은 파일을 등록하기 전에 파일에서 직접 GUID를 찾을 수있게 해줍니다. 최소한이 방법으로 스크립트를 작성하여 설치하고 성공적으로 설치되었는지 확인할 수 있습니다.
답변
특정 이름의 DLL이 등록되어 있는지 확인하고 BAT에서이 명령을 사용했습니다.
reg query HKLM\SOFTWARE\Classes /s /f whatever.dll
if errorlevel 1 goto DLL_MISSING
오류 수준이있는 경우 reg query
아무것도 발견 할 때마다 컨트롤을 레이블로 보냈습니다 . 검색 할 레지스트리 부분을 변경해야 할 수도 있습니다 (제 경우 HKLM'...
에는 더 구체적인 경로가 빠를수록 그렇지 않으면 실제로 오래 걸립니다).
필요한 경우 출력을 처리 할 수 있으며 항목의 GUID를 얻을 수 있지만 reg query 명령의 범위를 벗어납니다.
답변
커맨드 라인에서 DLL에 대한 레지스트리 항목 (및 선택적으로 COM 객체)을 찾으려면 @ virgo47과 @neves의 대답이 가장 효과적이었습니다.
- DLL 이름이 포함 된 레지스트리 항목을 찾으십시오. 이러한 항목은 일반적으로 GUID를 해당 키로 사용합니다.
reg 쿼리 HKLM \ SOFTWARE \ Classes / s / f whatever.dll
- (선택 사항) 이러한 GUID에 등록 된 COM 개체를 찾습니다. (사용
/s /f "{GUID}"
속도가| findstr /i "{GUID}"
. 보다 빠릅니다 .| find /i "{GUID}"
오타 인 것 같습니다 (그러나 Serverfault에 대해서는 아직 의견을 쓸 수 없습니다).)
reg 쿼리 HKCR \ CLSID / s / f “{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}”