Invoke-WmiMethod
呼叫 WMI 方法。
Syntax
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>]
Description
Cmdlet Invoke-WmiMethod 會呼叫 Windows Management Instrumentation (WMI) 物件的方法。
新的通用訊息模型 (CIM) Cmdlet,Windows PowerShell 3.0 中引進,執行與 WMI Cmdlet 相同的工作。 CIM Cmdlet 符合WS-Management (WSMan) 標準和 CIM 標準,讓 Cmdlet 能夠使用相同的技術來管理 Windows 電腦和執行其他作業系統。 不要使用 Invoke-WmiMethod ,請考慮使用 Invoke-CimMethod。
範例
範例 1:列出 WMI 物件的必要順序
([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:啟動應用程式的實例
([Wmiclass]'Win32_Process').GetMethodParameters('Create')
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
CommandLine :
CurrentDirectory :
ProcessStartupInformation :
PSComputerName :
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 :
此命令會呼叫 CreateWin32_Process 類別的 方法,啟動記事本的實例。
ReturnValue屬性會填入 ,而ProcessId屬性會填入 0 整數, (命令完成時) 下一個進程識別碼號碼。
範例 3:重新命名檔案
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 方法套用至該特定執行個體。
如果命令已完成,則會填入 0ReturnValue屬性。
範例 4:使用 '-ArgumentList' 傳遞值的陣列
使用 物件 $binSD 陣列後面 $null 接著值的範例。
$acl = get-acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
Invoke-WmiMethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -ArgumentList $binSD, $null
參數
指定要傳送至呼叫之方法的參數。 此參數的值必須是 物件的陣列,而且它們必須依呼叫方法所需的順序顯示。 Cmdlet Invoke-CimCommand 沒有這些限制。
若要判斷要列出這些物件的順序,請在 WMI 類別上執行 GetMethodParameters() 方法,如本主題結尾附近的範例 1 所示。
重要
如果第一個值是包含多個元素的陣列,則需要 的第二個值 $null 。 否則,命令會產生錯誤,例如 Unable to cast object of type 'System.Byte' to type 'System.Array'. 。 請參閱上述範例 4。
| Type: | Object[] |
| Aliases: | Args |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指出此 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。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定要與 WMI 連線搭配使用的驗證等級。 此參數可接受的值為:
-1: 未變更0: 預設值1: 無 (執行中沒有驗證。)2:只有在用戶端與 application.) 建立關聯性時,才會執行 連線 (驗證3: 只有在 應用程式收到 request.) 時,才會在每個呼叫的開頭執行呼叫 (驗證4: 封包 (驗證會在從 client.) 接收的所有資料上執行5: PacketIntegrity (用戶端與應用程式之間傳輸的所有資料都會經過驗證和驗證。)6: PacketPrivacy (會使用其他驗證層級的屬性,而且所有資料都會加密。)
| Type: | AuthenticationLevel |
| Accepted values: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定用來驗證 WMI 連線的授權單位。 您可以指定標準Windows NT LAN Manager (NTLM) 或 Kerberos 驗證。 若要使用 NTLM,請將授權單位設定 ntlmdomain:<DomainName> 設為 ,其中 <DomainName> 會識別有效的 NTLM 功能變數名稱。 若要使用 Kerberos,請指定 kerberos:<DomainName>\<ServerName> 。 當您連線到本機電腦時,不能包含授權單位設定。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定包含要呼叫之靜態方法的 WMI 類別。
| Type: | String |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定此 Cmdlet 執行命令的字串陣列。 預設是本機電腦。
請輸入一部或多部電腦的 NetBIOS 名稱、IP 位址或完整網域名稱。 若要指定本機電腦,請輸入電腦名稱稱、點 () . 或 localhost 。
此參數不必依賴 Windows PowerShell 遠端功能。 即使您的電腦未設定為執行遠端命令,您仍然可以使用 ComputerName 參數。
| Type: | String[] |
| Aliases: | Cn |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
在執行 Cmdlet 前提示您確認。
| Type: | SwitchParameter |
| Aliases: | cf |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定具有執行此動作權限的使用者帳戶。 預設為目前使用者。 輸入使用者名稱,例如 User01 、 Domain01\User01 或 User@Contoso.com 。 或者,輸入 PSCredential 物件,例如 Cmdlet 所 Get-Credential 傳回的物件。 當您輸入使用者名稱時,會提示您輸入密碼。
| Type: | PSCredential |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指出這個 Cmdlet 會在命令進行 WMI 呼叫之前,啟用目前使用者的擁有權限。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定要使用的模擬等級。 此參數可接受的值為:
0: 預設 (讀取預設模擬層級的本機登錄,通常設定3為 : Impersonate.)1: 匿名 (隱藏呼叫端.) 的認證2: 識別 (允許物件查詢呼叫端.) 的認證3: 模擬 (允許物件使用呼叫端.) 的認證4: 委派 (允許物件允許其他物件使用呼叫端.) 的認證
| Type: | ImpersonationLevel |
| Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定要作為輸入的 ManagementObject 物件。 使用此參數時,會忽略 Flag 和 Argument 參數以外的所有其他參數。
| Type: | ManagementObject |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
指定 WMI 物件的慣用地區設定。 以慣用的順序,將 Locale 參數的值指定為數組 MS_<LCID> 。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定要叫用之方法的名稱。 這是必要參數,不能是 null 或空白。
| Type: | String |
| Position: | 1 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
搭配 Class 參數使用時,此參數會指定參考 WMI 類別或物件所在的 WMI 存放庫命名空間。
| Type: | String |
| Aliases: | NS |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定 WMI 類別的 WMI 物件路徑,或指定 WMI 類別之執行個體的 WMI 物件路徑。 您指定的類別或實例必須包含 Name 參數中指定的方法。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定可同時執行的 WMI 作業數目節流值。 此參數會與 AsJob 參數搭配使用。 節流限制僅適用於目前命令,不適用於工作階段或電腦。
| Type: | Int32 |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。
| Type: | SwitchParameter |
| Aliases: | wi |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
輸入
None
此 Cmdlet 不接受任何輸入。
輸出
None
此 Cmdlet 不會產生任何輸出。
相關連結
意見反應
提交並檢視相關的意見反應