Bagikan melalui


Invoke-WmiMethod

Memanggil metode WMI.

Sintaks

Invoke-WmiMethod
      [-Class] <String>
      [-Name] <String>
      [-ArgumentList <Object[]>]
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-WmiMethod
      -InputObject <ManagementObject>
      [-Name] <String>
      [-ArgumentList <Object[]>]
      [-AsJob]
      [-ThrottleLimit <Int32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-WmiMethod
      -Path <String>
      [-Name] <String>
      [-ArgumentList <Object[]>]
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-WmiMethod
      [-Name] <String>
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-WmiMethod
      [-Name] <String>
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-WmiMethod
      [-Name] <String>
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Deskripsi

Cmdlet Invoke-WmiMethod memanggil metode objek Windows Management Instrumentation (WMI).

Cmdlet Common Information Model (CIM) baru, yang diperkenalkan di Windows PowerShell 3.0, melakukan tugas yang sama dengan cmdlet WMI. Cmdlet CIM mematuhi standar WS-Management (WSMan) dan dengan standar CIM, yang memungkinkan cmdlet menggunakan teknik yang sama untuk mengelola komputer Windows dan yang menjalankan sistem operasi lainnya. Alih-alih menggunakan Invoke-WmiMethod, pertimbangkan untuk menggunakan Invoke-CimMethod.

Contoh

Contoh 1: Mencantumkan urutan parameter metode WMI yang diperlukan

Perintah ini mencantumkan urutan objek yang diperlukan.

Get-WmiObject Win32_Volume |
    Get-Member -MemberType Method -Name Format |
    Select-Object -ExpandProperty Definition

System.Management.ManagementBaseObject Format(System.String FileSystem, System.Boolean QuickFormat,
 System.UInt32 ClusterSize, System.String Label, System.Boolean EnableCompression,
 System.UInt32 Version)

Untuk memanggil WMI di PowerShell 3.0 berbeda dari metode alternatif, dan mengharuskan nilai objek dimasukkan dalam urutan tertentu.

Contoh 2: Memulai instans aplikasi

([Wmiclass]'Win32_Process').Create.OverloadDefinitions

System.Management.ManagementBaseObject Create(System.String CommandLine, System.String CurrentDirectory,
 System.Management.ManagementObject#Win32_ProcessStartup ProcessStartupInformation)

Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList C:\Windows\system32\notepad.exe

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ProcessId        : 11312
ReturnValue      : 0
PSComputerName   :

Perintah ini memulai instans Notepad dengan memanggil metode Create kelas Win32_Process.

Properti ReturnValue diisi dengan 0, dan properti ProcessId diisi dengan bilangan bulat (nomor ID proses berikutnya) jika perintah selesai.

Contoh 3: Mengganti nama file

$invokeWmiMethodSplat = @{
    Path = "CIM_DataFile.Name='C:\scripts\test.txt'"
    Name = 'Rename'
    ArgumentList = 'C:\scripts\test_bu.txt'
}
Invoke-WmiMethod @invokeWmiMethodSplat

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

Perintah ini mengganti nama file. Ini menggunakan parameter Jalur untuk mereferensikan instans kelas CIM_DataFile. Kemudian, ini menerapkan metode Ganti Nama ke instans tertentu.

Properti ReturnValue diisi dengan 0 jika perintah selesai.

Contoh 4: Meneruskan array nilai menggunakan '-ArgumentList'

Contoh menggunakan array objek $binSD diikuti oleh nilai $null.

$acl = Get-Acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
$invokeWmiMethodSplat = @{
    Class = 'Win32_SecurityDescriptorHelper'
    Name = 'BinarySDToSDDL'
    ArgumentList = $binSD, $null
}
Invoke-WmiMethod @invokeWmiMethodSplat

Parameter

-ArgumentList

Menentukan parameter yang akan diteruskan ke metode yang disebut. Nilai parameter ini harus berupa array objek, dan harus muncul dalam urutan yang diperlukan oleh metode yang disebut. Cmdlet Invoke-CimCommand tidak memiliki batasan ini.

Untuk menentukan urutan untuk mencantumkan objek tersebut, jalankan metode GetMethodParameters() pada kelas WMI, seperti yang diilustrasikan dalam Contoh 1, di dekat akhir topik ini.

Penting

Jika nilai pertama adalah array yang berisi lebih dari satu elemen, nilai kedua $null diperlukan. Jika tidak, perintah menghasilkan kesalahan, seperti Unable to cast object of type 'System.Byte' to type 'System.Array'.. Lihat contoh 4 di atas.

Jenis:Object[]
Alias:Args
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-AsJob

Menunjukkan bahwa cmdlet ini menjalankan perintah sebagai pekerjaan latar belakang. Gunakan parameter ini untuk menjalankan perintah yang membutuhkan waktu lama untuk diselesaikan.

Saat Anda menggunakan parameter AsJob, perintah mengembalikan objek yang mewakili pekerjaan latar belakang lalu menampilkan prompt perintah. Anda dapat terus bekerja dalam sesi saat pekerjaan selesai. Jika Invoke-WmiMethod digunakan terhadap komputer jarak jauh, pekerjaan dibuat pada komputer lokal, dan hasil dari komputer jarak jauh secara otomatis dikembalikan ke komputer lokal. Untuk mengelola pekerjaan, gunakan cmdlet yang berisi kata benda Job (cmdlet Pekerjaan). Untuk mendapatkan hasil pekerjaan, gunakan cmdlet Receive-Job.

Untuk menggunakan parameter ini dengan komputer jarak jauh, komputer lokal dan jarak jauh harus dikonfigurasi untuk jarak jauh. Selain itu, Anda harus memulai Windows PowerShell dengan menggunakan opsi Jalankan sebagai administrator di Windows Vista dan versi Windows yang lebih baru. Untuk informasi selengkapnya, lihat about_Remote_Requirements.

Untuk informasi selengkapnya tentang pekerjaan latar belakang Windows PowerShell, lihat about_Jobs dan about_Remote_Jobs.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Authentication

Menentukan tingkat autentikasi yang akan digunakan dengan koneksi WMI. Nilai yang dapat diterima untuk parameter ini adalah:

  • -1: tidak berubah
  • 0: Default
  • 1: Tidak Ada (Tidak ada autentikasi yang dilakukan.)
  • 2: Connect (Autentikasi dilakukan hanya ketika klien membuat hubungan dengan aplikasi.)
  • 3: Panggilan (Autentikasi hanya dilakukan di awal setiap panggilan saat aplikasi menerima permintaan.)
  • 4: Paket (Autentikasi dilakukan pada semua data yang diterima dari klien.)
  • 5: PacketIntegrity (Semua data yang ditransfer antara klien dan aplikasi diautentikasi dan diverifikasi.)
  • 6: PacketPrivacy (Properti tingkat autentikasi lainnya digunakan, dan semua data dienkripsi.)
Jenis:AuthenticationLevel
Nilai yang diterima:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Authority

Menentukan otoritas yang akan digunakan untuk mengautentikasi koneksi WMI. Anda dapat menentukan autentikasi Windows NT LAN Manager (NTLM) atau Kerberos standar. Untuk menggunakan NTLM, atur pengaturan otoritas ke ntlmdomain:<DomainName>, di mana <DomainName> mengidentifikasi nama domain NTLM yang valid. Untuk menggunakan Kerberos, tentukan kerberos:<DomainName>\<ServerName>. Anda tidak dapat menyertakan pengaturan otoritas ketika Anda tersambung ke komputer lokal.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Class

Menentukan kelas WMI yang berisi metode statis untuk dipanggil.

Jenis:String
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

-ComputerName

Menentukan, sebagai array string, komputer tempat cmdlet ini menjalankan perintah. Defaultnya adalah komputer lokal.

Ketik nama NetBIOS, alamat IP, atau nama domain yang sepenuhnya memenuhi syarat dari satu atau beberapa komputer. Untuk menentukan komputer lokal, ketik nama komputer, titik (.), atau localhost.

Parameter ini tidak bergantung pada jarak jauh Windows PowerShell. Anda dapat menggunakan parameter ComputerName meskipun komputer Anda tidak dikonfigurasi untuk menjalankan perintah jarak jauh.

Jenis:String[]
Alias:Cn
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Confirm

Meminta konfirmasi sebelum menjalankan cmdlet.

Jenis:SwitchParameter
Alias:cf
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Credential

Menentukan akun pengguna yang memiliki izin untuk melakukan tindakan ini. Defaultnya adalah pengguna saat ini. Ketik nama pengguna, seperti User01, Domain01\User01, atau User@Contoso.com. Atau, masukkan objek PSCredential, seperti objek yang dikembalikan oleh cmdlet Get-Credential. Saat Anda mengetik nama pengguna, Anda akan dimintai kata sandi.

Jenis:PSCredential
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-EnableAllPrivileges

Menunjukkan bahwa cmdlet ini memungkinkan semua hak istimewa pengguna saat ini sebelum perintah melakukan panggilan WMI.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Impersonation

Menentukan tingkat peniruan yang akan digunakan. Nilai yang dapat diterima untuk parameter ini adalah:

  • 0: Default (Membaca registri lokal untuk tingkat peniruan default, yang biasanya diatur ke 3: Meniru.)
  • 1: Anonim (Menyembunyikan kredensial pemanggil.)
  • 2: Identifikasi (Memungkinkan objek untuk mengkueri kredensial pemanggil.)
  • 3: Meniru (Memungkinkan objek menggunakan kredensial pemanggil.)
  • 4: Delegasikan (Memungkinkan objek mengizinkan objek lain menggunakan kredensial pemanggil.)
Jenis:ImpersonationLevel
Nilai yang diterima:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-InputObject

Menentukan objek ManagementObject untuk digunakan sebagai input. Ketika parameter ini digunakan, semua parameter lain kecuali parameter Bendera dan Argumen diabaikan.

Jenis:ManagementObject
Position:Named
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Locale

Menentukan lokal pilihan untuk objek WMI. Tentukan nilai parameter Lokal sebagai array dalam format MS_<LCID> dalam urutan pilihan.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Name

Menentukan nama metode yang akan dipanggil. Parameter ini wajib dan tidak boleh null atau kosong.

Jenis:String
Position:1
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

-Namespace

Saat digunakan dengan parameter Kelas, parameter ini menentukan namespace repositori WMI tempat kelas atau objek WMI yang direferensikan berada.

Jenis:String
Alias:NS
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Path

Menentukan jalur objek WMI dari kelas WMI, atau menentukan jalur objek WMI dari instans kelas WMI. Kelas atau instans yang Anda tentukan harus berisi metode yang ditentukan dalam parameter Nama.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

-ThrottleLimit

Menentukan nilai pembatasan untuk jumlah operasi WMI yang dapat dijalankan secara bersamaan. Parameter ini digunakan bersama dengan parameter AsJob. Batas pembatasan hanya berlaku untuk perintah saat ini, bukan ke sesi atau ke komputer.

Jenis:Int32
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Jenis:SwitchParameter
Alias:wi
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

Input

None

Cmdlet ini tidak menerima input apa pun.

Output

None

Cmdlet ini tidak menghasilkan output apa pun.

Catatan

Windows PowerShell menyertakan alias berikut untuk Invoke-WmiMethod:

  • iwmi