Bagikan melalui


metode SWbemObject.ExecMethod_

Metode ExecMethod_ objek SWbemObject menjalankan metode yang diekspor oleh penyedia metode.

Metode ini dijeda saat metode yang diteruskan ke penyedia yang sesuai dijalankan. Informasi dan status kemudian dikembalikan. Penyedia daripada WMI mengimplementasikan metode .

Untuk penjelasan tentang sintaks ini, lihat Konvensi Dokumen untuk Scripting API.

Sintaks

objOutParams = .ExecMethod_( _
  ByVal strMethodName, _
  [ ByVal objwbemInParams ], _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

Parameter

strMethodName [in]

Wajib diisi. Nama metode untuk objek .

objwbemInParams [in, opsional]

Ini adalah objek SWbemObject yang berisi parameter input untuk metode yang dijalankan. Secara default, parameter ini tidak terdefinisi. Untuk informasi selengkapnya, lihat Membuat Objek InParameters dan Mengurai Objek OutParameters.

iFlags [in, opsional]

Dicadangkan dan harus diatur ke 0 (nol) jika ditentukan.

objwbemNamedValueSet [in, opsional]

Biasanya, itu tidak ditentukan. Jika tidak, ini adalah objek SWbemNamedValueSet yang elemennya mewakili informasi konteks yang dapat digunakan oleh penyedia yang melayani permintaan. Penyedia yang mendukung atau memerlukan informasi tersebut harus men dokumentasikan nama nilai yang dikenali, jenis data nilai, nilai yang diizinkan, dan semantik.

Nilai kembali

Jika metode ini berhasil, objek SWbemObject akan kembali. Objek yang dikembalikan berisi parameter keluar dan nilai yang dikembalikan untuk metode yang dijalankan.

Kode kesalahan

Setelah penyelesaian metode ExecMethod_ , objek Err mungkin berisi salah satu kode kesalahan dalam daftar berikut.

wbemErrFailed - 2147749889 (0x80041001)

Kesalahan yang tidak ditentukan.

wbemErrInvalidClass - 2147749904 (0x80041010)

Kelas yang ditentukan tidak valid.

wbemErrInvalidParameter - 2147749896 (0x80041008)

Parameter yang ditentukan tidak valid.

wbemErrOutOfMemory - 2147749894 (0x80041006)

Memori tidak cukup untuk menyelesaikan operasi.

wbemErrInvalidMethod - 2147749934 (0x8004102E)

Metode yang diminta tidak tersedia.

wbemErrAccessDenied - 2147749891 (0x80041003)

Pengguna saat ini tidak berwenang untuk menjalankan metode.

Keterangan

Metode ini mirip dengan SWbemServices.ExecMethod, tetapi beroperasi langsung pada objek yang metodenya akan dijalankan. Misalnya, contoh kode berikut memanggil metode penyedia StartService di Win32_Service dan menggunakan akses langsung.

oService = GetObject("winmgmts:Win32_Service=Alerter")
iStatus = oService.StartService()

Versi ini memanggil SWbemObject.ExecMethod_ untuk menjalankan metode StartService .

oService = GetObject("winmgmts:Win32_Service=Alerter")
Set outParam = process.ExecMethod_("StartService")

Gunakan SWbemObject.ExecMethod_ sebagai alternatif untuk akses langsung untuk menjalankan metode penyedia jika tidak dimungkinkan untuk menjalankan metode secara langsung. Misalnya, Anda akan menggunakan SWbemObject.ExecMethod_ dengan bahasa skrip yang tidak mendukung parameter output jika metode Anda memiliki parameter . Jika tidak, cara yang direkomendasikan untuk memanggil metode adalah menggunakan akses langsung.

  • Metode SWbemObject.ExecMethod_ mengasumsikan objek yang diwakili oleh SWbemObject berisi metode untuk dijalankan. Sebaliknya, SWbemServices.ExecMethod memerlukan jalur objek. Gunakan SWbemObject.ExecMethod_ jika Anda sudah mendapatkan objek yang metodenya ingin Anda jalankan.

Contoh

Contoh berikut menunjukkan metode ExecMethod . Skrip membuat objek Win32_Process yang mewakili proses yang menjalankan Notepad. Untuk informasi selengkapnya tentang skrip yang mengilustrasikan operasi yang sama yang dilakukan secara asinkron, lihat SWbemObject.ExecMethodAsync_. Untuk contoh menggunakan akses langsung, lihat Membuat Metode di Class Win32_Process . Untuk contoh operasi yang sama menggunakan objek SWbemServices , lihat SWbemServices.ExecMethod.

' Connect to WMI and obtain a Win32_Process object.
' This is also an SWbemObject object.
Set oProcess = GetObject("winmgmts:Win32_Process")

' Create the SWbemMethod.InParameters
' object to hold the input parameter needed
' for the Win32_Process.Create method call.
' The oProcess.Methods_("Create") call
' obtains a class object that defines
' the correct input parameters
' for the Win32_Process.Create call.
' The InParameters object is an 
' SWbemObject object so SWbemObject.SpawnInstance_
' can be called to create it.
Set oInParams = oProcess.Methods_("Create"). _
    InParameters.SpawnInstance_

' Specify the name of the process to be run.
oInParams.CommandLine = "Notepad.exe"
Set oOutParams = oProcess.ExecMethod_("Create", oInParams)

If oOutParams.ReturnValue = 0 Then
    wscript.echo "Create method executed successfully"
Else
' If the Create method failed to execute,
' an empty OutParameters object is returned. 
    If IsNull(oOutParams.ReturnValue) Then
        wscript.echo "Create method failed to execute."  
    Else
        wscript.echo "Create method executed but had error" _
            & "0x" & hex(oOutParams.ReturnValue)
    End If
End If

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista
Server minimum yang didukung
Windows Server 2008
Header
Wbemdisp.h
Pustaka jenis
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

Lihat juga

SWbemObject

SWbemObject.ExecMethodAsync_

SWbemServices.ExecMethod