Skocz do zawartości

Niezgodne dane w Centrum zabezpieczeń / Centrum akcji


Rekomendowane odpowiedzi

Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

securitycenter.gif

 
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:

wmimgmt.png

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.

wbemtestfile.png

2. Pojawi się okno "Tester oprzyrządowania Instrumentacji zarządzania Windows", na którym kliknij w Połącz / Connect:

wmitester1.png

3. W polu Obszar nazw zamień domyślnie pokazane wejście na root\SecurityCenter2 i klik w Połącz / Connect:

wmitester2.png

(Przypominam: stare wersje programów na Vista SP1+ mogą się lokować w root\SecurityCenter)

4. Obszar nazw zostanie ustawiony:

wmitester3.png

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:

wmitester4.png

(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:

wmitester6.png

Pojawi się lista ze spisem m.in. uwzględniającym AntiVirusProduct, FirewallProduct, AntiSpywareProduct. Należy dwukliknąć wybrane:

wmitester7.png

W nowym oknie wybrać opcję Wystąpienia / Instances:

wmitester8.png

 


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.

wmitester5.png




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

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:

perfmonstatus1.gif

perfmonstatus2.gif

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
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...