Mam plik DLL w katalogu SYSTEM32 jednego serwera, którego nie jestem pewien, czy rzeczywiście go potrzebuję.
Google powiedziało mi, do czego jest zwykle używany, ale oprogramowanie nigdy nie zostało zainstalowane w tym systemie. Mimo to uważam za możliwe, że jeden z innych zainstalowanych produktów na serwerze mógł zawierać (i dlatego, prawdopodobnie, będzie wymagać) plik.
Przeszukałem w rejestrze nazwę pliku, a także kilka ciągów, które znalazłem w metadanych pliku, i nie mogłem znaleźć żadnych informacji. (Chociaż klucz ACMru przykuł moją uwagę, dopóki nie dowiedziałem się, do czego służy .)
Czy jest coś jeszcze, co mogę zrobić, aby sam system powiedział mi, który program zainstalował bibliotekę DLL i / lub jakie zainstalowane programy (jeśli w ogóle) będą z niego korzystać?
UWAGA: Sugestie dotyczące narzędzi są dobre, ale nie będę instalować ani uruchamiać żadnego dodatkowego oprogramowania w tym systemie. Muszę pracować z tym, co jest dostępne w domyślnej instalacji Server 2003.
źródło
Możesz potencjalnie sprawdzić każdy plik .MSI w folderze% SystemRoot% \ Installer. Wszystkie (?) Programy, które są instalowane za pomocą instalatora Windows, dodają tutaj swój MSI, aby można je później odinstalować. W folderze jest zwykle mnóstwo rzeczy. Jeśli / Gdy znajdziesz dll wśród niezliczonych pakietów MSI, będziesz musiał odwzorować pakiet z powrotem na dobrze zdefiniowaną nazwę.
Aby dekompilować pliki msi za pomocą skryptu, możesz spróbować użyć tego narzędzia VBS http://www.hanselman.com/blog/HowToListAllTheFilesInAnMSIInstallerUsingVBSciript.aspx lub wypróbować program o nazwie MSIDiff (którego nigdy nie użyłem) http: //dennisbareis.com/msidiff.htm . Oczywiście, biorąc pod uwagę ograniczenia związane z brakiem konieczności instalowania narzędzi, te ostatnie nie będą konieczne w tym zakresie. Pierwszy zrobiłby to, gdyby zainstalowany był cscript.
To ostatnie narzędzie może wykonać mapowanie nazwy pakietu bez konieczności ręcznego przeszukiwania rejestru w poszukiwaniu odpowiedniego identyfikatora GUID lub pliku MSI. To pierwsze narzędzie można zmodyfikować, aby zrzucić nazwę pakietu, jeśli wiesz, do której tabeli / kolumny się odwoływać (nie wiem).
Skrypt VBS po prostu sprawdza plik MSI z perspektywy bazy danych. Kluczowa praca jest wykonywana za pomocą: database.OpenView („SELECT FileName FROM File”).
źródło
msi
instalacji ...Process Monitor może to zrobić za Ciebie. Wystarczy filtrować według nazwy DLL, a gdy program spróbuje go załadować, pojawi się wpis, który wspomina, który proces szuka i / lub uzyskuje dostęp do wspomnianej biblioteki DLL.
Powinieneś także spróbować zrobić dziennik rozruchu (włącz rejestrowanie rozruchu w menu, a następnie uruchom ponownie i ponownie otwórz monitor procesu), który jest niezbędny do przechwycenia programów i usług, które ładują go podczas rozruchu.
źródło