picasso Opublikowano 17 Września 2010 Zgłoś Udostępnij Opublikowano 17 Września 2010 Copyright @picasso fixitpc.pl Powielanie tej pracy zabronione.Niezgodne dane w Centrum zabezpieczeń / Centrum akcjiMetody korekcyjne dla XP / Vista / Windows 7 Odnośnik do komentarza
picasso Opublikowano 17 Września 2010 Autor Zgłoś Udostępnij Opublikowano 17 Września 2010 Scenariusz: Z systemu został odinstalowany program zabezpieczający typu antywirus, firewall czy pakiet zabezpieczeń. Jednakże Centrum zabezpieczeń XP i Vista czy Centrum akcji Windows 7 i nowszych nadal zgłaszają wejścia i status tego oprogramowania. Często spotykany problem, zanotowany również tutaj na forum. Dane w Centrach są pobierane w oparciu o WMI. Mechanizm ten nie ma szwajcarskiej precyzji i mogą nastąpić rozbieżności między stanem raportowanym a stanem faktycznym. Problem wynika z niewłaściwych procesów instalacyjno / deinstalacyjnych oprogramowania zabezpieczającego. Jeśli oprogramowanie nie wyrejestruje się w sposób prawidłowy i pozostawi wejście, Centrum potraktuje ten program jako istniejący. Możliwe są i odwrotne sytuacje: program przy instalacji wcale się nie zarejestruje i Centrum zgłosi jego brak. Niektóre programy nawet nie mają takiego celu, przykładowo ClamWin w ogóle nie przewiduje rejestracji i integracji z Centrum, gdyż nie ma rezydenta. Poniżej zostaną przedstawione kroki identyfikacyjne oraz instrukcje umożliwiające usunięcie martwych danych należących do odinstalowanego już programu. POBÓR DANYCH: 1. Informacje o zarejestrowanych programach w Centrum są zlokalizowane w następujących obszarach nazw WMI: root\SecurityCenter (przestrzeń nazwy na XP oraz Vista) root\SecurityCenter2 (przestrzeń nazwy występująca na platformach Vista SP1/SP2 i nowszych) Jak można zauważyć, od Vista SP1 pojawia się drugi element, funkcjonują więc dwie przestrzenie. Programy mogą się rejestrować w obu, w zależności od tego jak nowoczesny program to jest, stare wersje trafią do wstecznej wartości SecurityCenter. Wzrokowo ilość przestrzeni nazwy można sprawdzić uruchamiając przystawkę wmimgmt.msc, pobierając Właściwości i wchodząc w kartę Zabezpieczenia. Na liście, w zależności od systemu operacyjnego, będzie jedna lub dwie pozycje: Można oczywiście zrobić to i w konsoli Windows PowerShell przez polecenie: Get-WmiObject -Namespace "root" -Class "__NAMESPACE" | Format-List Name Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> Get-WmiObject -Namespace "root" -Class "__NAMESPACE" | Format-List Name Name : subscription Name : DEFAULT Name : CIMV2 Name : msdtc Name : Cli Name : SECURITY Name : SecurityCenter2 Name : RSOP Name : PEH Name : StandardCimv2 Name : WMI Name : directory Name : Policy Name : Interop Name : Hardware Name : ServiceModel Name : SecurityCenter Name : Microsoft Name : Appv PS C:\WINDOWS\system32> 2. Dokładne identyfikatory rejestracyjne produktów mogą zostać wyciągnięte poprzez narzędzie WMIC. WMIC Polecenie jest dostępne na Windows XP Pro (brak na edycji Home), Vista i Windows 7. Więcej w tutorialu KolegiDudysa: WMIC - Windows Management Instrumentation Console Należy uruchomić linię komend CMD i wpisać polecenie według formuły: wmic /namespace:\\root\SecurityCenter2 PATH AntiVirusProduct GET /value Zielone: należy wpisać SecurityCenter dla XP i Vista, zaś na Vista SP1+ są do sprawdzenia po kolei SecurityCenter i SecurityCenter2. Fioletowe: są możliwe trzy obszary AntiVirusProduct, FirewallProduct, AntiSpywareProduct. Na XP AntiSpywareProduct nie istnieje. Przykładowe zwroty poleceń: Dla antywirusów: wmic /namespace:\\root\SecurityCenter PATH AntiVirusProduct GET /value companyName=Lavasoft displayName=Lavasoft Ad-Watch Live! Anti-Virus enableOnAccessUIMd5Hash= enableOnAccessUIParameters= instanceGuid={A1C4F2E0-7FDE-4917-AFAE-013EFC3EDE33} onAccessScanningEnabled=TRUE pathToEnableOnAccessUI= pathToUpdateUI= productUptoDate=TRUE updateUIMd5Hash= updateUIParameters= versionNumber= wmic /namespace:\\root\SecurityCenter2 PATH AntiVirusProduct GET /value displayName=Microsoft Security Essentials instanceGuid={BF5CEBDC-F2D3-7540-343C-F0CE11FD6E66} pathToSignedProductExe=C:\Program Files\Microsoft Security Essentials\msseces.exe pathToSignedReportingExe=C:\Program Files\Microsoft Security Essentials\MsMpEng.exe productState=393216 Dla zapór sieciowych: wmic /namespace:\\root\SecurityCenter PATH FirewallProduct GET /value No Instance(s) Available. Dla oprogramowania anty-spyware: wmic /namespace:\\root\SecurityCenter2 path AntiSpywareProduct get /value displayName=Microsoft Security Essentials instanceGuid={043D0A38-D4E9-7ACE-0E8C-CBBC6A7A24DB} pathToSignedProductExe=C:\Program Files\Microsoft Security Essentials\msseces.exe pathToSignedReportingExe=C:\Program Files\Microsoft Security Essentials\MsMpEng.exe productState=393216 displayName=Windows Defender instanceGuid={D68DDC3A-831F-4fae-9E44-DA132C1ACF46} pathToSignedProductExe=%ProgramFiles%\Windows Defender\MSASCui.exe pathToSignedReportingExe=%SystemRoot%\System32\svchost.exe productState=262400 Należy zwrócić uwagę na ustęp instanceGuid, który punktuje określony {numer}. Ten właśnie {numer} jest odnośnikiem we właściwych krokach usuwających opisanych poniżej. Dodatkowo, program multifunkcyjny może być zarejestrowany podwójnie, w powyższym przykładzie widać to dobrze na pozycji Microsoft Security Essentials (jest zarejestrowany jako antywirus i antyspyware). Powielenie może wystąpić także przy systemowym Windows Defender, może być on zarejestrowany zarówno w SecurityCenter jak i SecurityCenter2. Batch: Ten rodzaj zadania można wykonać zbiorowo w oparciu o plik BAT. Przykład gotowego pliku: KLIK. Należy zauważyć, że BAT ma zaprogramowane sprawdzanie tylko jednego obszaru nazwy dla systemu Vista i Windows 7. METODA USUWANIA 1: Precyzyjne usunięcie danych konkretnego programu identyfikowanych {numerem} przy udziale wbudowanego w system narzędzia wbemtest.exe. Narzędzie testowe WMI: WBEMTest to narzędzie administracyjne umożliwiające wykonanie pewnych zadań WMI z poziomu graficznego interfejsu. Narzędzie jest dostępne na wszystkich systemach typu NT. Więcej o nim w artykule: WBEM What? 1. Uruchom plik C:\WINDOWS\system32\wbem\wbemtest.exe. 2. Pojawi się okno "Tester oprzyrządowania Instrumentacji zarządzania Windows", na którym kliknij w Połącz / Connect: 3. W polu Obszar nazw zamień domyślnie pokazane wejście na root\SecurityCenter2 i klik w Połącz / Connect: (Przypominam: stare wersje programów na Vista SP1+ mogą się lokować w root\SecurityCenter) 4. Obszar nazw zostanie ustawiony: 5. Dojście do spisu rejestracji programów z poziomu w/w okna można wykonać na dwa sposoby: Sposób 1 Klik w Kwerenda / Query i w polu wpisz SELECT * FROM AntiVirusProduct i klik w Zastosuj / Apply: (W zależności od tego z jakim typem mamy do czynienia, należy podstawić jedno z tych: AntiVirusProduct, FirewallProduct, AntiSpywareProduct) Sposób 2 Wybierz opcję Wylicz klasy / Enum classes. Pojawi się nowe okno proszące o nazwę superklasy, to zostawiamy puste: Pojawi się lista ze spisem m.in. uwzględniającym AntiVirusProduct, FirewallProduct, AntiSpywareProduct. Należy dwukliknąć wybrane: W nowym oknie wybrać opcję Wystąpienia / Instances: 5. Niezależnie od obranego wyżej sposobu, pojawi się podobny wynik kwerendy finałowej. Lista grupuje wpisy typu AntiVirusProduct.instanceGuid="{numerek}". Ów {numerek} to dokładnie ten sam pobrany komendami WMIC na początku. Podświetl właściwą pozycję odpowiadającą programowi usuniętemu z systemu i kliknij w Usuń / Delete. METODA USUWANIA 2: Ogólnikowa przez weryfikację spójności i przebudowę Repozytorium w oparciu o komendy winmgmt z przełącznikami /verifyrepository i /salvagerepository. Ta metoda aplikuje się tylko dla systemów Vista i Windows 7, gdyż XP nie posiada opisywanych tu przełączników. Metoda może się przydać także przy odwrotności: przywróceniu pamięci Centrum w kwestii zainstalowanego i działającego programu. Winmgmt: Kompletny spis przełączników oraz uzupełniające informacje znajdziecie w tym technicznym zestawieniu: WMI Command Line Tools - winmgmt 1. Wywołaj linię komend CMD w trybie Uruchom jako Administrator (w przeciwnym wypadku będzie błąd poleceń). 2. Wpisz polecenie weryfikacji spójności Repozytorium w trybie tylko do odczytu: winmgmt /verifyrepository Komenda może zwrócić następujące wyniki: Repozytorium WMI jest spójne / WMI repository is consistent - Nie wykryto problemów. Należy ukończyć działania na tym etapie. WMI repository is inconsistent - Wykryto problemy. Przejdź do następnego punktu 3 w instrukcji. 3. Wpisz polecenie weryfikacji spójności Repozytorium i jego automatycznej przebudowy: winmgmt /salvagerepository Komenda może zwrócić następujące wyniki: Repozytorium WMI jest spójne / WMI repository is consistent - Nie wykryto problemów. Nie została wykona przebudowa. Należy zakończyć działania. WMI repository salvage failed - Przebudowa Repozytorium nie udała się. WMI repository has been salvaged - Repozytorium zostało pomyślnie przebudowane. 4. Zresetuj komputer. METODA USUWANIA 3 (NIEZALECANA): Destrukcyjna przez wyzerowanie katalogu Repozytorium rozłożone na kroki: wstrzymanie usługi Instrumentacja zarządzania Windows, zmiana nazwy katalogu C:\WINDOWS\system32\wbem\Repository i restart komputera. Umniejszam tu rolę tego sposobu i nie rozpisuję szczegółowo. Do wykorzystania w ostateczności, gdy zawiodą wszystkie inne metody i jest zdefiniowany jakiś obszerniejszy defekt w funkcjonowaniu WMI. Uwaga: Mimo, że reset Repozytorium przez całkowite usunięcie zawartości może rozwiązać problem, jest to mocno niezalecana metoda. Ten rodzaj resetu Repozytorium nie jest normalny i może mieć skutki uboczne. Odnośnik do komentarza
picasso Opublikowano 18 Września 2010 Autor Zgłoś Udostępnij Opublikowano 18 Września 2010 ANEKS Niespójność między statusem w Centrum zabezpieczeń / Centrum akcji a Monitorem niezawodności i wydajności Dodaję uzupełniający wątek, który częściowo zazębia się z omawianym tu problemem, a wstęp informacyjny jest już przygotowany. Na Windows Vista SP1/SP2 i Windows 7 występuje jeszcze jeden problem związany z nieprawidłowością statusów oprogramowania zabezpieczającego. Otóż Centrum może prawidłowo zgłaszać obecność danego oprogramowania zabezpieczającego, ale już Monitor wydajności oceniając pracę tego samego Centrum twierdzi, że takiego oprogramowania brak. Raport kondycji: Windows Vista: Panel sterowania > System i konserwacja > Informacje wydajności i narzędzia > Narzędzia zaawansowne Windows 7: Panel sterowania > System i zabezpieczenia > System > Informacje wydajności i narzędzia > Narzędzia zaawansowne W raporcie kondycji zobaczycie takie komunikaty: Ta rozbieżność danych to wynik błędu Microsoftu, czyli brak naniesionej poprawki na sytuację wprowadzenia nowej przestrzeni nazwy: Monitor sprawdza tylko starą przestrzeń nazwy SecurityCenter: root\SecurityCenter:SELECT * FROM AntiVirusProduct Nie uwzględnia nowej SecurityCenter2 dodanej w systemach Vista SP1+: root\SecurityCenter2:SELECT * FROM AntiVirusProduct (Jak już powiedziane wcześniej, są możliwe trzy odczyty z klas AntiVirusProduct, FirewallProduct, AntiSpywareProduct) Potencjalne zgłoszenie o wykrytym oprogramowaniu jest tylko wtedy możliwe, gdy w systemie zainstalowano oprogramowanie zabezpieczające starszej daty, które rozumie tylko starą wartość i tam się dopisuje. Zachowanie graniczy z przypadkowością. Wbudowany w system Windows Defender może zostać odnaleziony na Vista, w sytuacji gdy jest zarejestrowany w obu przestrzeniach równocześnie. Błąd w Windows 7 koryguje Hotfix z KB2482947. Ten problem możecie także spotkać w innych programach bazujących na wyciągach WMI, które nie zdążyły się przystosować do nowych warunków. Odnośnik do komentarza
Rekomendowane odpowiedzi