Udostępnij za pośrednictwem


Tworzenie klientów usługi WMI

Usługa WMI zapewnia ustandaryzowaną infrastrukturę zarządzania systemem, którą można wykorzystać przez wielu różnych klientów. Ci klienci wahają się od narzędzia wiersza polecenia wmic.exe do programu System Center Operations Manager. Możesz napisać własne aplikacje klienckie WMI, korzystając z interfejsu API skryptów WMI, natywnego interfejsu API C++ lub typów dostępnych w przestrzeni nazw System.Management w bibliotece klas .NET Framework.

Jak utworzyć klienta usługi WMI

Podstawową funkcjonalnością usługi WMI jest pobieranie obiektów z repozytorium WMI i badanie właściwości tych obiektów. Możesz również zaktualizować te właściwości lub wywołać metody dla tych właściwości. W poniższych przykładach pokazano, jak wykonać podstawowe zadanie administracyjne usługi WMI: pobieranie nazwy komputera lokalnego.

Termin Opis
Tworzenie klienta za pomocą programu PowerShell
Usługi WMI i program PowerShell są ściśle zintegrowane; w związku z tym pobieranie obiektów WMI za pomocą programu PowerShell jest po prostu kwestią wywoływania polecenia cmdlet Get-WmiObject. Należy pamiętać, że w przypadku spójności pierwszy fragment kodu jawnie określa wiele wartości domyślnych; drugi zakłada, że wartości domyślne są poprawne.

PowerShell
              
              #explicitly stwierdza wiele domyślnych parametrów $myComputer = Get-WmiObject -ComputerName "." -Namespace "root\cimv2" -Query "SELECT * FROM Win32_ComputerSystem" foreach ($computer in $myComputer) { "Nazwa systemu: " + $computer.name } 

#assumes the default values are correct Get-WmiObject Win32_ComputerSystem | Format-Table "Name"

Tworzenie klienta za pomocą języka VBScript

VBScript to oryginalny język skryptowy, który miał wspólne zastosowanie z usługą WMI. Chociaż program PowerShell stał się bardziej popularny, wiele istniejących przykładów kodu w tej dokumentacji jest napisanych w języku VBScript. Należy pamiętać, że ten konkretny przykład VBScript jawnie określa zarówno ścieżkę komputera lokalnego, jak i poziom udawania tożsamości; nie jest to wymagane, ale często jest to zalecana praktyka.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objItem in colItems
    Wscript.Echo "Computer Name: " & objItem.Name
Next

Tworzenie klienta za pomocą języka C# (Microsoft.Management.Infrastructure)

Ta przestrzeń nazw zawiera bieżące rozwiązanie do uzyskiwania dostępu do usługi WMI za pomocą kodu zarządzanego i jest nazywane infrastrukturą zarządzania windows (MI lub WMIv2). Obecnie program MI jest obsługiwaną technologią tworzenia klientów zarządzania zarządzanego. Aby uzyskać więcej informacji, zobacz Jak wdrożyć zarządzanego klienta MI oraz Jak wdrożyć natywnego klienta MI.

C#
              
              używając Microsoft.Management.Infrastructure; ... CimSession sesja = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = sesja.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem"); 

foreach (CimInstance cimObj in queryInstance) { Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString()); }

Tworzenie klienta za pomocą języka C# (System.Management)

Ta przestrzeń nazw zawiera oryginalne rozwiązanie do uzyskiwania dostępu do usługi WMI za pomocą kodu zarządzanego. Mimo że klasy System.Management są nadal dostępne, klasy Microsoft.Management.Infrastructure są ogólnie bardziej wydajne i lepiej skalowane. W związku z tym zaleca się używanie klas MI, a nie oryginalnych klas WMI.

C#
              
              przy użyciu biblioteki Microsoft.Management.Infrastructure; ... Sesja CimSession = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = sesja. QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem"); 

foreach (CimInstance cimObj in queryInstance) { Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString()); }

W poniższej tabeli wymieniono tematy omówione w tej sekcji.

Temat Opis
Nawiązywanie połączenia z WMI na komputerze zdalnym Opisuje szereg problemów występujących, gdy klienci korzystają z infrastruktury WMI na komputerze zdalnym.
Zadania WMI do skryptów i aplikacji Przedstawia przykładowy kod klienta usługi WMI.
Tworzenie aplikacji WMI lub skryptu Zawiera informacje o tworzeniu różnych klientów usługi WMI.
monitorowanie danych wydajności Opisuje sposób używania usługi WMI do monitorowania danych wydajności.
Odbieranie zdarzenia WMI Opisuje, jak przeglądać zdarzenia WMI.
monitorowanie zdarzeń Opisuje, jak monitorować zdarzenia usługi WMI.
Wykonywanie zapytań przy użyciu WQL Wprowadza język zapytań WMI (WQL).
wykonywanie zapytań o stan funkcji opcjonalnych W systemie Windows 7 usługa WMI zaimplementowała klasę Win32_OptionalFeature. Ta klasa pobiera stan opcjonalnych funkcji, które są obecne na komputerze.
opisywanie lokalizacji obiektu WMI Koncentruje się na składni dla określenia lokalizacji jednostki zarządzanej przez WMI.
uzyskiwanie dostępu do innych funkcji systemu operacyjnego za pomocą usługi WMI Opisuje, jak pisać klientów usługi WMI, które uzyskują dostęp do sterowników urządzeń, usługi Active Directory i urządzeń SNMP.
Uzyskiwanie dostępu do danych w przestrzeni nazw Międzyoperacyjnej Dostawcy skojarzeń umożliwiają klientom instrumentacji zarządzania dla Windows (WMI) nawigowanie i pobieranie profilów oraz skojarzonych wystąpień klas z przestrzeni nazw różnych domen.
Manipulowanie informacjami o klasie i instancji Opisuje typowe zadania, które muszą wykonywać klienci WMI.
Łączenie klas ze sobą Omówienie dostawcy widoków i sposobu jego użycia w celu zebrania informacji z wielu klas WMI.
modyfikowanie rejestru systemowego W tym artykule opisano, jak klienci WMI mogą zarządzać informacjami o rejestrze systemu za pomocą usługi WMI.