Invoke-WmiMethod
語法
class (預設值)
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>]
object
Invoke-WmiMethod
[-Name] <String>
-InputObject <ManagementObject>
[-ArgumentList <Object[]>]
[-AsJob]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
path
Invoke-WmiMethod
[-Name] <String>
-Path <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
WQLQuery
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>]
query
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>]
list
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>]
Description
Invoke-WmiMethod Cmdlet 會呼叫 Windows Management Instrumentation (WMI) 物件的方法。
Windows PowerShell 3.0 中引進的新通用資訊模型 (CIM) Cmdlet 會執行與 WMI Cmdlet 相同的工作。
CIM Cmdlet 符合 WS-Management (WSMan) 標準和 CIM 標準,這可讓 Cmdlet 使用相同的技術來管理 Windows 計算機和執行其他操作系統。
請考慮使用 Invoke-CimMethod,而不是使用 https://go.microsoft.com/fwlink/?LinkId=227965.
範例
範例 1:列出 WMI 物件的必要順序
PS C:\> ([wmiclass]'Win32_Volume').GetMethodParameters('Format')
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 6
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ClusterSize : 0
EnableCompression : False
FileSystem : NTFS
Label :
QuickFormat : False
Version : 0
PSComputerName :
此命令會列出物件的必要順序。
若要在PowerShell 3.0中叫用WMI與替代方法不同,而且需要以特定順序輸入物件值。
範例 2:啟動應用程式的實例
PS C:\> ([Wmiclass]'Win32_Process').GetMethodParameters('Create')
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
CommandLine :
CurrentDirectory :
ProcessStartupInformation :
PSComputerName : PS C:\> Invoke-WmiMethod -Path win32_process -Name create -ArgumentList notepad.exe
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ProcessId : 11312
ReturnValue : 0
PSComputerName :
此命令會呼叫 Win32_Process 類別的 Create 方法,以啟動記事本的實例。
ReturnValue 屬性會填入 0,如果命令完成,ProcessId 屬性會填入整數(下一個進程標識符)。
範例 3:重新命名檔案
PS C:\> Invoke-WmiMethod -Path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt"
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue : 0
此命令會重新命名檔案。
它會使用 Path 參數來參考 CIM_DataFile 類別的實例。
然後,它會將 Rename 方法套用至該特定實例。
如果命令完成,ReturnValue 屬性會填入 0。
參數
-ArgumentList
指定要傳遞至所呼叫方法的參數。
這個參數的值必須是 對象的陣列,而且它們必須以所呼叫方法所需的順序顯示。
Invoke-CimCommand Cmdlet 沒有這些限制。
若要判斷列出這些對象的順序,請在 WMI 類別上執行 GetMethodParameters() 方法,如本主題結尾的範例 1 所示。
重要:如果第一個值是包含多個元素的陣列,則需要第二個值$null。
否則,此命令會產生錯誤,例如「無法將 』System.Byte' 類型的物件轉換成 'System.Array'.」。
使用 物件陣列 ($binSD) 後面接著 null 值 ($null) 的範例如下:
PS C:\>$acl = get-acl test.txt
PS C:\>$binSD = $acl。GetSecurityDescriptorBinaryForm()
PS C:\>invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null
參數屬性
| 類型: | Object[]
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 參數 |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
object
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-AsJob
表示此 Cmdlet 會以背景工作的形式執行命令。
使用此參數來執行需要很長的時間才能完成的命令。
當您使用 AsJob 參數時,命令會傳回代表背景工作的物件,然後顯示命令提示字元。
您可以在作業完成時繼續在工作階段中工作。
如果 Invoke-WmiMethod 用於遠端電腦,則會在本機電腦上建立作業,而且遠端電腦的結果會自動傳回至本機計算機。
若要管理作業,請使用包含 Job 名詞的 Cmdlet(Job Cmdlet)。
若要取得作業結果,請使用 Receive-Job Cmdlet。
若要搭配遠端電腦使用此參數,必須將本機和遠端電腦設定為遠端處理。
此外,您必須在 Windows Vista 和更新版本的 Windows 中使用 [以系統管理員身分執行] 選項來啟動 Windows PowerShell。
如需詳細資訊,請參閱 about_Remote_Requirements。
如需 Windows PowerShell 背景工作的詳細資訊,請參閱about_Jobs和about_Remote_Jobs。
參數屬性
| 類型: | SwitchParameter
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Authentication
指定要與 WMI 連線搭配使用的驗證層級。
此參數可接受的值為:
-1: 未變更
0:預設值
1:無 (未執行驗證。
2:只有在用戶端與應用程式建立關聯性時,才會執行驗證。
3:呼叫 (只有在應用程式收到要求時,每個呼叫的開頭才會執行驗證。
4:封包(驗證會針對從用戶端接收的所有數據執行。
5:PacketIntegrity (用戶端與應用程式之間傳輸的所有數據都會經過驗證和驗證。
6:PacketPrivacy (會使用其他驗證層級的屬性,並加密所有數據。
參數屬性
| 類型: | AuthenticationLevel
|
| 預設值: | None |
| 接受的值: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WQLQuery
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
query
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
list
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Authority
指定要用來驗證 WMI 連線的授權單位。
您可以指定標準 Windows NT LAN Manager (NTLM) 或 Kerberos 驗證。
若要使用 NTLM,請將授權單位設定設為 ntlmdomain:<DomainName>,其中 <DomainName> 識別有效的 NTLM 功能變數名稱。
若要使用 Kerberos,請指定 kerberos:<DomainName\ServerName>。
當您連線到本機計算機時,無法包含授權單位設定。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WQLQuery
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
query
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
list
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Class
指定要呼叫之靜態方法的 WMI 類別。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
class
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-ComputerName
指定此 Cmdlet 執行命令的電腦,做為字串陣列。
預設值為本機電腦。
輸入 NetBIOS 名稱、IP 位址或一或多部電腦的完整功能變數名稱。
若要指定本機計算機,請輸入計算機名稱、點 (.) 或localhost。
此參數不依賴 Windows PowerShell 遠端處理。
即使您的電腦未設定為執行遠端命令,您也可以使用 ComputerName 參數。
參數屬性
| 類型: | String[]
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | Cn |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WQLQuery
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
query
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
list
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
參數屬性
| 類型: | SwitchParameter
|
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | cf |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Credential
指定具有執行此動作許可權的用戶帳戶。
預設值為目前的使用者。
輸入使用者名稱,例如 User01、Domain01\User01 或 User@Contoso.com。
或者,輸入 PSCredential 物件,例如 Get-Credential Cmdlet 所傳回的物件。
當您輸入使用者名稱時,系統會提示您輸入密碼。
參數屬性
| 類型: | PSCredential
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WQLQuery
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
query
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
list
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-EnableAllPrivileges
表示這個 Cmdlet 會在命令進行 WMI 呼叫之前,啟用目前使用者的所有許可權。
參數屬性
| 類型: | SwitchParameter
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WQLQuery
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
query
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
list
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Impersonation
指定要使用的模擬層級。
此參數可接受的值為:
0:預設值 (讀取預設模擬層級的本機登錄,通常設定為 “3: Impersonate”。
1:匿名 (隱藏呼叫者的認證。
2:識別 (允許物件查詢呼叫端的認證。)
3:模擬 (允許物件使用呼叫端的認證。
4:委派 (允許物件允許其他物件使用呼叫端的認證。
參數屬性
| 類型: | ImpersonationLevel
|
| 預設值: | None |
| 接受的值: | Default, Anonymous, Identify, Impersonate, Delegate |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WQLQuery
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
query
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
list
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
指定要作為輸入的 ManagementObject 物件。
使用此參數時,除了 Flag 和 Argument 參數以外的所有其他參數都會被忽略。
| 類型: | ManagementObject
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
object
| Position: | Named |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Locale
指定 WMI 物件的慣用地區設定。
以慣用的順序,以MS_<LCID> 格式,指定 Locale 參數的值作為陣列。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WQLQuery
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
query
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
list
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Name
指定要叫用的方法名稱。
這個參數是必要參數,不能是 Null 或空白。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 1 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Namespace
搭配 Class 參數使用時,此參數會指定參考 WMI 類別或物件所在的 WMI 存放庫命名空間。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | NS |
參數集
class
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
path
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
WQLQuery
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
query
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
list
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Path
指定 WMI 類別的 WMI 物件路徑,或指定 WMI 類別實例的 WMI 物件路徑。
您指定的類別或實例必須包含 Name 參數中指定的方法。
參數屬性
| 類型: | String
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
path
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-ThrottleLimit
指定可同時執行的 WMI 作業數目節流值。
此參數會與 AsJob 參數搭配使用。
節流限制僅適用於目前的命令,不適用於會話或計算機。
參數屬性
| 類型: | Int32
|
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。
指令未執行。
參數屬性
| 類型: | SwitchParameter
|
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 無線 |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
None
輸出
None