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

Invoke-WmiMethod Cmdlet 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 Create metode 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 $null nilai.

$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. Invoke-CimCommand Cmdlet tidak memiliki batasan ini.

Untuk menentukan urutan untuk mencantumkan objek tersebut GetMethodParameters() , jalankan metode 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 $null kedua diperlukan. Jika tidak, perintah menghasilkan kesalahan, seperti Unable to cast object of type 'System.Byte' to type 'System.Array'.. Lihat contoh 4 di atas.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 Job benda (cmdlet Pekerjaan). Untuk mendapatkan hasil pekerjaan, gunakan Receive-Job cmdlet .

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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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: Koneksi (Autentikasi dilakukan hanya ketika klien membuat hubungan dengan aplikasi.)
  • 3: Panggilan (Autentikasi dilakukan hanya 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.)
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Class

Menentukan kelas WMI yang berisi metode statis untuk dipanggil.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

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

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableAllPrivileges

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 untuk menggunakan kredensial pemanggil.)
  • 4: Mendelegasikan (Memungkinkan objek untuk mengizinkan objek lain menggunakan kredensial pemanggil.)
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

Type:ManagementObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Locale

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

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

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Namespace

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

Type:String
Aliases:NS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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