เรียกใช้ CimMethod (CimCmdlets)
Invoke-CimMethod
- โมดูล :
- CimCmdlets
เรียกใช้เมธอดของคลาส CIM
ไวยากรณ์
Invoke-CimMethod
[-ClassName] <String>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
[-ClassName] <String>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
-ResourceUri <Uri>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
[-ResourceUri <Uri>]
[-InputObject] <CimInstance>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
[-ResourceUri <Uri>]
[-InputObject] <CimInstance>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
-ResourceUri <Uri>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
[-CimClass] <CimClass>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
[-CimClass] <CimClass>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
-Query <String>
[-QueryDialect <String>]
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Invoke-CimMethod
-Query <String>
[-QueryDialect <String>]
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]คำอธิบาย
cmdlet นี้ใช้ได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น
Invoke-CimMethod cmdlet เรียกใช้เมธอดของคลาส CIM หรืออินสแตนซ์ CIM โดยใช้คู่ชื่อ-ค่าที่ระบุโดยพารามิเตอร์ อาร์กิวเมนต์
หากไม่ได้ระบุพารามิเตอร์ InputObject cmdlet จะทำงานด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- หากไม่ได้ระบุพารามิเตอร์ ComputerName หรือพารามิเตอร์ CimSession ไว้ cmdlet นี้จะทำงานใน Windows Management Instrumentation (WMI) ภายในเครื่องโดยใช้เซสชัน Component Object Model (COM)
- หากมีการระบุพารามิเตอร์ ComputerName หรือพารามิเตอร์ CimSession cmdlet นี้จะทำงานกับเซิร์ฟเวอร์ CIM ที่ระบุโดยพารามิเตอร์ ComputerName หรือ < พารามิเตอร์CimSession
หากมีการระบุพารามิเตอร์ InputObject cmdlet จะทำงานด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- ถ้าไม่ได้ระบุพารามิเตอร์ ComputerName หรือพารามิเตอร์ CimSession ดังนั้น cmdlet นี้จะใช้เซสชัน CIM หรือชื่อคอมพิวเตอร์จากวัตถุอินพุต
- หากมีการระบุพารามิเตอร์ ComputerName หรือพารามิเตอร์ CimSession ดังนั้น cmdlet นี้จะใช้ค่าพารามิเตอร์ CimSession หรือ ComputerName< ค่าพารามิเตอร์ นี่ไม่ใช่สถานการณ์ทั่วไป
ตัวอย่าง
ตัวอย่างที่ 1: เรียกใช้วิธีการ
ตัวอย่างนี้เรียกใช้เมธอด ยุติ ของคลาส Win32_Process
Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"ตัวอย่างที่ 2: เรียกใช้วิธีการโดยใช้วัตถุอินสแตนซ์ CIM
ตัวอย่างนี้ดึงข้อมูลออบเจ็กต์อินสแตนซ์ CIM และเก็บไว้ในตัวแปรชื่อ $x โดยใช้ Get-CimInstance cmdlet จากนั้นเนื้อหาของตัวแปรจะถูกใช้เป็น InputObject สำหรับ Invive-CimMethod cmdlet เมธอด GetOwner ถูกเรียกใช้สำหรับ CimInstance
$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwnerตัวอย่างที่ 3: เรียกใช้วิธีการคงที่โดยใช้อาร์กิวเมนต์
ตัวอย่างนี้เรียกใช้เมธอด สร้าง ซึ่งตั้งชื่อโดยใช้พารามิเตอร์ อาร์กิวเมนต์
Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{
CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32"
}ตัวอย่างที่ 4: การตรวจสอบฝั่งไคลเอ็นต์
ตัวอย่างนี้ดำเนินการตรวจสอบฝั่งไคลเอ็นต์สำหรับวิธี xyz โดยส่งวัตถุ CimClass ไปยัง Invive-CimMethod
$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }พารามิเตอร์
-Arguments
ระบุพารามิเตอร์ที่จะส่งผ่านไปยังวิธีการที่เรียกว่า ระบุค่าสำหรับพารามิเตอร์นี้เป็นคู่ชื่อ-ค่า ซึ่งจัดเก็บไว้ในตารางแฮช ลำดับของค่าที่ป้อนไม่สำคัญ
- พิมพ์ :
พจนานุกรม
- ตำแหน่ง:
1
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
-
False
-CimClass
ระบุอ็อบเจ็กต์คลาส CIM ที่แสดงถึงนิยามคลาส CIM บนเซิร์ฟเวอร์ ใช้พารามิเตอร์นี้เมื่อเรียกใช้เมธอดแบบสแตติกของคลาส
คุณสามารถใช้ cmdlet Get-CimClass เพื่อดึงคำนิยามคลาสจากเซิร์ฟเวอร์
การใช้พารามิเตอร์นี้ส่งผลให้มีการตรวจสอบสคีมาฝั่งไคลเอ็นต์ดีขึ้น
- พิมพ์ :
CimClass
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-CimSession
รันคำสั่งโดยใช้เซสชัน CIM ที่ระบุ ป้อนตัวแปรที่มีเซสชัน CIM หรือคำสั่งที่สร้างหรือรับเซสชัน CIM เช่น cmdlets New-CimSession หรือ Get-CimSession สำหรับข้อมูลเพิ่มเติม โปรดดูที่ about_CimSession
- พิมพ์ :
ซิมเซสชั่น[]
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-ClassName
ระบุชื่อของคลาส CIM ที่ต้องการดำเนินการ พารามิเตอร์นี้ใช้สำหรับวิธีการคงที่เท่านั้น คุณสามารถใช้การทำให้แท็บสมบูรณ์เพื่อเรียกดูรายการคลาสได้ เนื่องจาก PowerShell รับรายการคลาสจากเซิร์ฟเวอร์ WMI ภายในเครื่องเพื่อจัดเตรียมรายการชื่อคลาส
- พิมพ์ :
String
- นามแฝง :
Class
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-ComputerName
ระบุชื่อของคอมพิวเตอร์ที่คุณต้องการรันการดำเนินการ CIM คุณสามารถระบุชื่อโดเมนแบบเต็ม (FQDN) ชื่อ NetBIOS หรือที่อยู่ IP ได้
เมื่อใช้พารามิเตอร์นี้ cmdlet จะสร้างเซสชันชั่วคราวไปยังคอมพิวเตอร์ที่ระบุโดยใช้โปรโตคอล WsMan มิฉะนั้น cmdlet จะดำเนินการบนเครื่องคอมพิวเตอร์โดยใช้ Component Object Model (COM)
เชื่อมต่อโดยใช้เซสชัน CIM เพื่อประสิทธิภาพที่ดีขึ้น เมื่อมีการดำเนินการหลายอย่างบนคอมพิวเตอร์เครื่องเดียวกัน
- พิมพ์ :
String[]
- นามแฝง :
CN, ServerName
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-Confirm
แจ้งให้คุณยืนยันก่อนเรียกใช้ cmdlet
- พิมพ์ :
SwitchParameter
- นามแฝง :
cf
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
False
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-InputObject
ระบุออบเจ็กต์อินสแตนซ์ CIM เพื่อใช้เป็นอินพุตเพื่อเรียกใช้เมธอด พารามิเตอร์นี้สามารถใช้เพื่อเรียกใช้เมธอดอินสแตนซ์เท่านั้น หากต้องการเรียกใช้เมธอดคลาสคงที่ ให้ใช้พารามิเตอร์ Class หรือพารามิเตอร์ CimClass
- พิมพ์ :
CimInstance
- นามแฝง :
CimInstance
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-MethodName
ระบุชื่อของวิธี CIM ที่จะเรียกใช้ พารามิเตอร์นี้เป็นพารามิเตอร์บังคับและไม่สามารถเป็นค่าว่างหรือเว้นว่างได้ หากต้องการเรียกใช้เมธอดคงที่ของคลาส CIM ให้ใช้พารามิเตอร์ ClassName หรือ CimClass
- พิมพ์ :
String
- นามแฝง :
Name
- ตำแหน่ง:
2
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-Namespace
ระบุเนมสเปซสำหรับการดำเนินการ CIM เนมสเปซเริ่มต้นคือ root/cimv2 คุณสามารถใช้การทำให้แท็บสมบูรณ์เพื่อเรียกดูรายการเนมสเปซได้ เนื่องจาก PowerShell รับรายการเนมสเปซจากเซิร์ฟเวอร์ WMI ภายในเครื่องเพื่อจัดเตรียมรายการเนมสเปซ
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-OperationTimeoutSec
ระบุระยะเวลาที่ cmdlet รอการตอบสนองจากคอมพิวเตอร์ ตามค่าเริ่มต้น ค่าจะเป็น 0 ซึ่งหมายความว่า cmdlet ใช้ค่าการหมดเวลาเริ่มต้นสำหรับเซิร์ฟเวอร์
หากพารามิเตอร์ OperationTimeoutSec ถูกตั้งค่าน้อยกว่าการหมดเวลาการลองเชื่อมต่อเริ่มต้นที่ 3 นาที ความล้มเหลวของเครือข่ายที่ยาวนานกว่าค่าของพารามิเตอร์ OperationTimeoutSec จะไม่สามารถกู้คืนได้
- พิมพ์ :
UInt32
- นามแฝง :
OT
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Query
ระบุเคียวรีที่จะรันบนเซิร์ฟเวอร์ CIM วิธีการถูกเรียกใช้บนอินสแตนซ์ที่ได้รับอันเป็นผลมาจากแบบสอบถาม คุณสามารถระบุภาษาถิ่นของการค้นหาได้โดยใช้พารามิเตอร์ QueryDialect
หากค่าที่ระบุมีเครื่องหมายคำพูดคู่ (") เครื่องหมายคำพูดเดี่ยว (') หรือแบ็กสแลช (\) คุณต้องหลีกเลี่ยงอักขระเหล่านั้น โดยนำหน้าด้วยอักขระแบ็กสแลช (\) หากค่าที่ระบุใช้ตัวดำเนินการ WQL LIKE คุณจะต้องหลีกเลี่ยงอักขระต่อไปนี้โดยใส่ไว้ในวงเล็บเหลี่ยม ([]): เปอร์เซ็นต์ (%), ขีดล่าง (_) หรือวงเล็บเหลี่ยมเปิด ([)
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-QueryDialect
ระบุภาษาแบบสอบถามที่ใช้สำหรับพารามิเตอร์แบบสอบถาม ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ: WQL หรือ CQL
ค่าเริ่มต้นคือ WQL
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
WQL
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-ResourceUri
ระบุตัวระบุทรัพยากรเครื่องแบบ (URI) ของคลาสทรัพยากรหรืออินสแตนซ์ URI ใช้เพื่อระบุประเภทของทรัพยากรที่เฉพาะเจาะจง เช่น ดิสก์หรือกระบวนการ บนคอมพิวเตอร์
URI ประกอบด้วยคำนำหน้าและเส้นทางไปยังทรัพยากร ตัวอย่างเช่น:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDiskhttp://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettingsตามค่าเริ่มต้น หากคุณไม่ได้ระบุพารามิเตอร์นี้ URI รีซอร์สมาตรฐาน DMTF http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ จะถูกใช้และคลาส ชื่อถูกต่อท้ายไว้
ResourceURI สามารถใช้ได้เฉพาะกับเซสชัน CIM ที่สร้างขึ้นโดยใช้โปรโตคอล WSMan หรือเมื่อระบุพารามิเตอร์ ComputerName ซึ่งสร้างเซสชัน CIM โดยใช้ WSMan
เมื่อคุณระบุพารามิเตอร์นี้โดยไม่ระบุพารามิเตอร์ ComputerName หรือเมื่อคุณระบุเซสชัน CIM ที่สร้างโดยใช้โปรโตคอล DCOM คุณจะได้รับข้อผิดพลาด โปรโตคอล DCOM ไม่สนับสนุนพารามิเตอร์ ResourceURI
หากมีการระบุทั้งพารามิเตอร์ ResourceUri และพารามิเตอร์ ตัวกรอง พารามิเตอร์ ตัวกรอง จะถูกละเว้น
- พิมพ์ :
ยูริ
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-WhatIf
แสดงสิ่งที่จะเกิดขึ้นหาก cmdlet ทำงาน cmdlet ไม่ทำงาน
- พิมพ์ :
SwitchParameter
- นามแฝง :
wi
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
False
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
อินพุต
CimClass
คุณสามารถไปป์คลาส CIM ไปที่ cmdlet นี้
CimInstance
คุณสามารถไพพ์อินสแตนซ์ CIM ไปที่ cmdlet นี้
เอาท์พุต
PSCustomObject
cmdlet นี้ส่งคืนวัตถุ
หมายเหตุ
PowerShell มีนามแฝงต่อไปนี้สำหรับ Inrigg-CimMethod:
Windows:
icim
cmdlet นี้ใช้ได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น