共用方式為


Invoke-WmiMethod

呼叫 WMI 方法。

語法

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-WmiMethod,而不是使用

範例

範例 1:列出 WMI 方法參數的必要順序

此命令會列出物件的必要順序。

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)

若要在PowerShell 3.0中叫用WMI與替代方法不同,而且需要以特定順序輸入物件值。

範例 2:啟動應用程式的實例

([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   :

此命令會呼叫 Create 類別的 方法,以啟動記事本的實例。

ReturnValue 屬性會填入 0,如果命令完成,ProcessId 屬性會填入整數(下一個進程標識符)。

範例 3:重新命名檔案

$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

此命令會重新命名檔案。 它會使用 Path 參數來參考 CIM_DataFile 類別的實例。 然後,它會將 Rename 方法套用至該特定實例。

如果命令完成,ReturnValue 屬性會填入 0

範例 4:使用 '-ArgumentList' 傳遞值的陣列

使用物件陣列的範例 $binSD 後面接著 $null 值。

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

參數

-ArgumentList

指定要傳遞至所呼叫方法的參數。 這個參數的值必須是 對象的陣列,而且它們必須以所呼叫方法所需的順序顯示。 Invoke-CimCommand Cmdlet 沒有這些限制。

若要判斷列出這些對象的順序,請在 WMI 類別上執行 GetMethodParameters() 方法,如本主題結尾附近的範例 1 所示。

這很重要

如果第一個值是包含一個以上的元素的陣列,則需要第二個值 $null。 否則,命令會產生錯誤,例如 Unable to cast object of type 'System.Byte' to type 'System.Array'.。 請參閱上述範例 4。

參數屬性

類型:

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(作業 Cmdlet)。 若要取得作業結果,請使用 Receive-Job Cmdlet。

若要搭配遠端電腦使用此參數,必須將本機和遠端電腦設定為遠端處理。 此外,您必須在 Windows Vista 和更新版本的 Windows 中,使用 [以系統管理員身分執行] 選項來啟動 Windows PowerShell。 如需詳細資訊,請參閱 about_Remote_Requirements

如需 Windows PowerShell 背景工作的詳細資訊,請參閱 about_Jobsabout_Remote_Jobs

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Authentication

指定要與 WMI 連線搭配使用的驗證層級。 此參數可接受的值為:

  • -1未變更
  • 0預設
  • 1(未執行驗證。
  • 2Connect (只有在用戶端與應用程式建立關聯性時,才會執行驗證。
  • 3呼叫(只有在應用程式收到要求時,才會在每個呼叫的開頭執行驗證。
  • 4Packet (驗證是在用戶端接收的所有數據上執行。
  • 5PacketIntegrity(用戶端與應用程式之間傳輸的所有數據都會經過驗證和驗證。
  • 6PacketPrivacy (會使用其他驗證層級的屬性,並加密所有數據。

參數屬性

類型: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

指定具有執行此動作許可權的用戶帳戶。 預設值為目前的使用者。 輸入使用者名稱,例如 User01Domain01\User01User@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模擬
  • 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

-InputObject

指定要作為輸入的 ManagementObject 物件。 使用此參數時,除了 FlagArgument 參數以外的所有其他參數都會被忽略。

參數屬性

類型:ManagementObject
預設值:None
支援萬用字元:False
不要顯示:False

參數集

object
Position:Named
必要:True
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Locale

指定 WMI 物件的慣用地區設定。 以慣用順序,以 格式指定 MS_<LCID> 參數的值作為陣列。

參數屬性

類型: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

此 Cmdlet 不接受任何輸入。

輸出

None

此 Cmdlet 不會產生任何輸出。

備註

Windows PowerShell 包含下列 Invoke-WmiMethod的別名:

  • iwmi