Rozwiązywanie problemów z usługą WMI
Podczas uzyskiwania dostępu do lokalnych lub zdalnych danych WMI w aplikacji lub skrypcie mogą wystąpić różne błędy, od brakujących klas po odmowę dostępu. Dostawcy mają również dostępne opcje debugowania i klasy rozwiązywania problemów.
Notatka
Informacje w tym temacie są przeznaczone dla deweloperów i administratorów IT. Jeśli jesteś użytkownikiem końcowym, który napotkał komunikat o błędzie dotyczącym usługi WMI, odwiedź stronę Microsoft Supporti wyszukaj kod błędu widoczny w komunikacie o błędzie. Aby uzyskać więcej informacji na temat rozwiązywania problemów ze skryptami usługi WMI i usługą WMI, zobacz usługa WMI nie działa!
Narzędzie do diagnostyki WMI
Ważny
Narzędzie do diagnostyki WMI (WMIDiag.exe
) nie jest już obsługiwane, począwszy od systemów Windows 8 i Windows Server 2012.
Windows 7, Windows Server 2008 R2, Windows Vista i Windows Server 2008:
Jeśli usługa WMI zwraca komunikaty o błędach, należy pamiętać, że mogą nie wskazywać problemów w usłudze WMI lub u dostawców usługi WMI. Błędy mogą pochodzić z innych części systemu operacyjnego i pojawiają się jako błędy za pośrednictwem usługi WMI. W żadnym wypadku nie należy usuwać repozytorium WMI jako pierwszego kroku; ponieważ usunięcie repozytorium może spowodować uszkodzenie systemu lub zainstalowanych aplikacji.
Wcześniej, aby uzyskać więcej informacji o źródle problemu, można było pobrać i uruchomić narzędzie diagnostyczne WMI w wierszu polecenia. To narzędzie opracowało raport, który zwykle może odizolować źródło problemu i udostępnić instrukcje dotyczące sposobu jego rozwiązania. Raport pomógł również usługom pomocy technicznej firmy Microsoft w asyście. Narzędzie do diagnostyki WMI było wcześniej dostępne w Centrum pobierania.
Jako autor oprogramowania dla dostawców, możesz również napotkać problemy z debugowaniem, chyba że piszesz niezależnego dostawcę . Aby uzyskać więcej informacji, zobacz Debugowanie usługodawców.
Rejestrowanie i śledzenie
Pliki dziennika usługi WMI już nie istnieją; zostały one zastąpione przez Śledzenie zdarzeń w systemie Windows (ETW). Aby uzyskać więcej informacji, zobacz Śledzenie aktywności usługi WMI, rejestrowanie działań usługi WMIi plików dziennika usługi WMI.
Rozwiązywanie problemów w skryptach i aplikacjach
WMI zawiera zestaw klas do rozwiązywania problemów aplikacji klienckich korzystających z dostawców WMI. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z aplikacjami klienckimi usługi WMI.
Jak autorzy dostawcy mogą zapobiegać problemom z usługą WMI
Dostawcy-autorzy mogą zapobiec wielu problemom (które pojawiają się w komunikatach o błędach za pośrednictwem usługi WMI), wykonując następujące akcje:
- Prawidłowe zarejestrowanie dostawcy. Aby uzyskać więcej informacji, zobacz Rejestrowanie dostawcy.
- Dodanie instrukcji #pragma autorecover do pliku MOF (Managed Object Format), który definiuje klasy dostawców.
Aby uzyskać więcej informacji, zobacz Debugowanie dostawców, Dostarczanie danych do usługi WMIoraz Konfiguracja dostawcy i klasy rozwiązywania problemów.
Odmowa dostępu
Odmowa dostępu błędy zgłaszane przez skrypty i aplikacje które uzyskują dostęp do przestrzeni nazw WMI i danych zazwyczaj należą do trzech kategorii. W poniższej tabeli wymieniono trzy kategorie błędów wraz z problemami, które mogą powodować błędy i możliwe rozwiązania.
Błąd | Możliwe problemy | Rozwiązanie |
---|---|---|
0x800706BA HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) Problem z zaporą lub serwer jest niedostępny. |
Komputer naprawdę nie istnieje lub Zapora systemu Windows blokuje połączenie |
Nawiązywanie połączenia z systemem Vista: netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes Nawiązywanie połączenia z wersją niższą: Zezwalaj na regułę "Administracja zdalna" w Zaporze systemu Windows. |
0x80070005 E_ACCESS_DENIED Odmowa dostępu przez zabezpieczenia DCOM. |
Użytkownik nie ma dostępu zdalnego do komputera za pośrednictwem modelu DCOM. Zazwyczaj podczas nawiązywania połączenia z komputerem zdalnym z inną wersją systemu operacyjnego występują błędy DCOM. |
Nadaj użytkownikowi uprawnienia Zdalne uruchamianie i aktywacja zdalna w systemie dcomcnfg. Kliknij prawym przyciskiem myszy pozycję Mój komputer—> właściwości. W obszarze Zabezpieczenia COM kliknij pozycję "Edytuj limity" dla obu sekcji. Nadaj użytkownikowi dostęp zdalny, zdalne uruchamianie i aktywację zdalną. Następnie przejdź do konfiguracji DCOM, znajdź pozycję "Instrumentacja zarządzania Windows" i przyznaj wybranemu użytkownikowi uprawnienia do zdalnego uruchamiania i zdalnej aktywacji. Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia między różnymi systemami operacyjnymi |
0x80041003 WBEM_E_ACCESS_DENIED (Odmowa dostępu) Odmowa dostępu przez dostawcę |
Użytkownik nie ma uprawnień do wykonywania operacji w usłudze WMI. Może się to zdarzyć, gdy zapytujesz o określone klasy jako użytkownik o niskich prawach, ale najczęściej zdarza się to podczas próby wywołania metod lub zmiany wystąpień usługi WMI przez użytkownika o niskich prawach. Przestrzeń nazw, z którą nawiązujesz połączenie, jest szyfrowana, a użytkownik próbuje nawiązać połączenie z niezaszyfrowanym połączeniem |
Nadaj użytkownikowi dostęp za pomocą kontrolki WMI (upewnij się, że ma ustawioną Remote_Access wartość true) Połącz przy użyciu klienta obsługującego szyfrowanie. |
Zazwyczaj podczas nawiązywania połączenia z komputerem zdalnym z inną wersją systemu operacyjnego występują błędy DCOM.
Dostawcy mogą również blokować dostęp do danych w określonych przestrzeniach nazw lub wymagać pewnych poziomów zabezpieczeń połączeń. Aby uzyskać więcej informacji, zobacz Setting Client Application Process Security i Provider Hosting and Security.
Błędy odmowy dostępu spowodowane zmianami w Zapory Połączenia Internetowego (ICF).
Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia za pośrednictwem zapory systemu Windows.
Błąd odmowy dostępu jest zwracany przez zabezpieczenia DCOM, gdy klient o niskiej integralności próbuje uzyskać dostęp do usługi WMI. Na przykład kontrolka ActiveX uruchomiona w programie Internet Explorer, która ma ustawiony poziom zabezpieczeń na niski, nie ma dostępu do wykonywania lokalnych operacji WMI.
Windows 7: Użytkownicy o niskiej integralności mają uprawnienia tylko do odczytu w zakresie lokalnych operacji WMI.
Informacje o błędach
Gdy zostanie wyświetlony komunikat o błędzie z usługi WMI, można zlokalizować komunikat w stałe błędów usługi WMI lub w przypadku skryptów WbemErrorEnum. Jednak informacje dostarczane przez sam błąd są zazwyczaj niewystarczające do określenia, co się dzieje. Uszkodzenie repozytorium WMI może podszywać się pod klasy lub wystąpienia "nie znaleziono".
Aby uzyskać więcej informacji o błędach usługi WMI:
- Dzienniki usługi WMI śledzą zdarzenia z poziomu rdzenia usługi WMI i od dostawców. Aby uzyskać więcej informacji, zobacz Rejestrowanie aktywności usługi WMI.
- Użyj klas rozwiązywania problemów WMI, aby sprawdzić stan wewnętrzny usługi WMI lub otrzymywać powiadomienia o zdarzeniach dostawcy lub usługi WMI. Aby uzyskać więcej informacji, zobacz Konfiguracja dostawcy i klasy rozwiązywania problemów oraz Rozwiązywanie problemów z aplikacjami klienckimi WMI.