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 berubah0
: Default1
: 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\User01
atau 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 ke3
: 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
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk