ค้นหาเว็บไซต์

เรียกใช้ 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_LogicalDisk
http://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 เท่านั้น

บทความที่เกี่ยวข้อง