Manipulowanie informacjami o klasie i wystąpieniu
Usługa WMI udostępnia różne techniki pobierania i manipulowania informacjami o klasie i wystąpieniu usługi WMI przy użyciu programu Microsoft PowerShell, visual basic Scripting Edition (VBScript) i języka C++.
W poniższej tabeli wymieniono tematy, które omawiają techniki pobierania i manipulowania informacjami o klasach i wystąpieniach WMI.
Temat | Opis |
---|---|
Pobieranie danych klasy lub wystąpienia usługi WMI | Pobieranie i ustawianie danych do i z repozytorium informacji WMI. |
modyfikowanie właściwości wystąpienia | Zmień informacje w wystąpieniu po jego pobraniu. |
Zmiana dziedziczenia instancji | Zmień klasę nadrzędną wystąpienia. |
Modyfikowanie metody | Zmodyfikuj parametry wystąpienia. |
Wyliczanie WMI | Wylicz obiekty WMI. |
Wykonywanie zapytań dotyczących usługi WMI | Wykonywanie zapytań względem obiektów WMI. |
Wywoływanie Metody | Użyj skojarzonych metod utworzonych przez firmę Microsoft lub innych deweloperów innych firm, aby dalej manipulować obiektami WMI lub bezpośrednio wpływać na obiekt reprezentowany przez obiekt WMI. |
uzyskiwanie dostępu do kolekcji | Wyliczanie kolekcji w skrypcie. |
Manipulowanie danymi przy użyciu języka VBScript
Możesz użyć bezpośredniego dostępu, aby uzyskać dostęp do właściwości usługi WMI klasy lub wystąpienia usługi WMI bezpośrednio w SWbemObject, a nie za pośrednictwem właściwości kolekcji tego obiektu. Można również wykonywać metody dla tego obiektu w natywnym stylu języka programowania, zamiast używać wywołania SWbemServices.ExecMethod. Na przykład metoda Create w Win32_Process miała trzy parametry w systemie Windows 2000, ale ma cztery parametry w systemie Windows Server 2003.
Przy użyciu bezpośredniego dostępu można traktować właściwości i metody WMI tak, jakby były właściwościami automatyzacji i metodami SWbemObject.
W poniższym przykładzie pokazano, jak można uzyskać dostęp do właściwości.
VolumeName = MyDisk.Properties_("VolumeName")
W poniższym przykładzie pokazano, jak można uzyskać dostęp do właściwości, gdy masz bezpośredni dostęp.
VolumeName = MyDisk.VolumeName
Łączenie obiektów jest również dopuszczalne.
W poniższym przykładzie pokazano, jak uzyskać dostęp do właściwości obiektu osadzonego w innym obiekcie.
value = MyComputer.MyDisk.VolumeName
W poniższym przykładzie pokazano, jak uzyskać dostęp do właściwości z notacją indeksu tablicy.
valueOfElement = MyDisk.MyArrayProperty(3)
Poniższy przykład kodu VBScript pokazuje, jak rozpocząć instancje parametrów wejściowych do metody Create w klasie Win32_Process jako SWbemObject, wypełnić właściwości wejściowe, a następnie wykonać metodę Create przy użyciu SWbemServices.ExecMethod.
Właściwość SWbemObject.Methods_ zwraca kolekcję SWbemMethodSet metod Win32_Process. Członowie zestawu metod to obiekty SWbemMethod, a SWbemMethod.InParameters zwraca parametry wejściowe dla metody Create. Wymagany parametr wejściowy wiersza polecenia jest ustawiony na "calc.exe". Metoda jest następnie wykonywana przez SWbemServices.ExecMethod, co powoduje uruchomienie procesu calc.exe.
set Services = GetObject("winmgmts:root\cimv2")
Set obj = Services.Get("Win32_Process")
Set objIns = obj.Methods_("Create").InParameters.SpawnInstance_
objIns.CommandLine = "calc.exe"
Set objOut = Services.ExecMethod("Win32_Process", "Create", objIns)
MsgBox "Return value = " & objOut.returnvalue & VBCRLF & "Process ID = " & objOut.processid
Poniższy przykład kodu pokazuje, jak wykonać poprzednią operację przy użyciu bezpośredniego dostępu.
set Services = GetObject("winmgmts:root\cimv2")
Set Obj = Services.Get("Win32_Process")
returnvalue = Obj.create("calc.exe",,,processid)
MsgBox "Return value = " & returnvalue & VBCRLF & "Process ID = " & processid
Aby uzyskać więcej informacji, zobacz Wywoływanie metody dostawcy i Skryptowanie z SWbemObject.