Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Obiekt skryptowy SWbemObject to ogólny obiekt WMI, definiujący właściwości i metody, których można użyć niezależnie od określonego obiektu WMI, do którego jest powiązany obiekt SWbemObject. Wszystkie obiekty WMI, takie jak wystąpienie Win32_Process lub dowolna inna klasa danych WMI, są reprezentowane przez SWbemObject i mogą używać SWbemObject wspólnych właściwości i metod oprócz własnych właściwości i metod.
Na przykład użyj następującego skryptu, aby uzyskać wszystkie wystąpienia Win32_Process przez wywołanie metody SWbemObject.Instances_. ClsobjProcess reprezentuje zarówno definicję klasy Win32_Process, jak i SWbemObject.
strComputer = "."
Set objWMIServices = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set clsobjProcess = objWMIServices.Get("Win32_Process")
Set colProcesses = clsobjProcess.Instances_()
For Each Process in colProcesses
WScript.Echo Process.Name
Next
Poniższy przykład uzyskuje określone wystąpienie Win32_Service, które reprezentuje usługę Alerter i przechowuje je w objAlerter. Następnie można wywołać metody SWbemObject, takie jak WScript.Echo objAlerter.Path_, lub metody zdefiniowane przez klasę danych, takie jak WScript.Echo objAlerter.State. objAlerter reprezentujący zarówno instancję Win32_Service, jak i SWbemObject.
strComputer = "."
Set objWMIServices = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set objAlerter = objWMIServices.Get("Win32_Service.Name='Alerter'")
WScript.Echo objAlerter.Path_
objAlerter.StopService()
WScript.Echo objAlerter.State
For each Prop in myObject.Properties_
Wscript.Echo Prop.Name
Next
Wywołanie metody SWbemObject.Instances_ uzyskuje kolejny ogólny obiekt skryptowy WMI, SWbemObjectSet. Jak pokazano, obiekt SWbemObjectSet może być traktowany jako kolekcja .
Set clsobjProcess = objWMIServices.Get("Win32_Process")
Można zidentyfikować metody SWbemObject, ponieważ wszystkie kończą się podkreśleniami (_), na przykład SWbemObject.Instances_.
SWbemObjectEx rozszerza właściwości SWbemObject. Na przykład można teraz zaktualizować dane dowolnego obiektu WMI, takiego jak instancja Win32_Process, poprzez wywołanie SWbemObjectEx.Refresh_.
W poniższym przykładzie pokazano, jak dane błędów strony procesu systemu mogą być odświeżane co pięć sekund.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'System'",,48)
For Each Process in colProcesses
i = 0
Do Until i = 5
i = i + 1
Wscript.Echo "PageFaults = " & Process.PageFaults
Wscript.Sleep 10000
Process.Refresh_
Loop
Next
Aby uzyskać więcej informacji na temat odświeżania danych przy użyciu obiektu SWbemRefresher, zobacz Odświeżanie danych usługi WMI w skryptach.
SWbemObject.Put_ i PutAsync_ umożliwiają zapisywanie zmian z powrotem do dowolnego obiektu WMI. Te metody zatwierdzają zmiany tylko w obiekcie w przestrzeni nazw, w której został utworzony obiekt. Obiekt można zapisać w innej przestrzeni nazw przy użyciu SWbemServicesEx.Put lub SWbemServicesEx.PutAsync.
Tematy pokrewne
-
interfejs API skryptów dla usługi WMI
-
wywoływanie metody