รับ-CimAssociatedInstance (CimCmdlets)
รับ-CimAssociatedInstance
- โมดูล :
- CimCmdlets
ดึงข้อมูลอินสแตนซ์ CIM ที่เชื่อมต่อกับอินสแตนซ์ CIM ที่ระบุโดยการเชื่อมโยง
ไวยากรณ์
Get-CimAssociatedInstance
[[-Association] <String>]
[-ResultClassName <String>]
[-InputObject] <CimInstance>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-ResourceUri <Uri>]
[-ComputerName <String[]>]
[-KeyOnly]
[<CommonParameters>]Get-CimAssociatedInstance
[[-Association] <String>]
[-ResultClassName <String>]
[-InputObject] <CimInstance>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-ResourceUri <Uri>]
-CimSession <CimSession[]>
[-KeyOnly]
[<CommonParameters>]คำอธิบาย
cmdlet นี้ใช้ได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น
Get-CimAssociatedInstance cmdlet จะดึงข้อมูลอินสแตนซ์ CIM ที่เชื่อมต่อกับอินสแตนซ์ CIM เฉพาะที่เรียกว่าอินสแตนซ์ต้นทางโดยการเชื่อมโยง
ในการเชื่อมโยง แต่ละอินสแตนซ์ CIM จะมีบทบาทที่ระบุชื่อ และอินสแตนซ์ CIM เดียวกันสามารถเข้าร่วมในการเชื่อมโยงในบทบาทที่แตกต่างกันได้
หากไม่ได้ระบุพารามิเตอร์ InputObject cmdlet จะทำงานด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- หากไม่ได้ระบุพารามิเตอร์ ComputerName หรือพารามิเตอร์ CimSession ไว้ cmdlet นี้จะทำงานใน Windows Management Instrumentation (WMI) ภายในเครื่องโดยใช้เซสชัน Component Object Model (COM)
- หากมีการระบุพารามิเตอร์ ComputerName หรือพารามิเตอร์ CimSession cmdlet นี้จะทำงานกับเซิร์ฟเวอร์ CIM ที่ระบุโดยพารามิเตอร์ ComputerName หรือ < พารามิเตอร์CimSession
ตัวอย่าง
ตัวอย่างที่ 1: รับอินสแตนซ์ที่เกี่ยวข้องทั้งหมดของอินสแตนซ์เฉพาะ
$disk = Get-CimInstance -ClassName Win32_LogicalDisk -KeyOnly
Get-CimAssociatedInstance -InputObject $disk[1]
ชุดคำสั่งนี้จะดึงอินสแตนซ์ของคลาสชื่อ Win32_LogicalDisk และจัดเก็บข้อมูลในตัวแปรชื่อ $disk โดยใช้ cmdlet Get-CimInstance จากนั้นอินสแตนซ์ดิสก์ลอจิคัลตัวแรกในตัวแปรจะถูกใช้เป็นออบเจ็กต์อินพุตสำหรับ Get-CimAssociatedInstance cmdlet เพื่อรับอินสแตนซ์ CIM ที่เกี่ยวข้องทั้งหมดของอินสแตนซ์ CIM ที่ระบุ
ตัวอย่างที่ 2: รับอินสแตนซ์ที่เกี่ยวข้องทั้งหมดของประเภทเฉพาะ
$disk = Get-CimInstance -ClassName Win32_LogicalDisk -KeyOnly
Get-CimAssociatedInstance -InputObject $disk[1] -ResultClass Win32_DiskPartitionชุดคำสั่งนี้จะดึงข้อมูลอินสแตนซ์ทั้งหมดของคลาส Win32_LogicalDisk และจัดเก็บไว้ในตัวแปรชื่อ $disk จากนั้นอินสแตนซ์ดิสก์ลอจิคัลตัวแรกในตัวแปรจะถูกใช้เป็นออบเจ็กต์อินพุตสำหรับ Get-CimAssociatedInstance cmdlet เพื่อรับอินสแตนซ์ที่เกี่ยวข้องทั้งหมดซึ่งเชื่อมโยงผ่านคลาสการเชื่อมโยงที่ระบุ Win32_DiskPartition .
ตัวอย่างที่ 3: รับอินสแตนซ์ที่เกี่ยวข้องทั้งหมดผ่านตัวระบุของคลาสเฉพาะ
ชุดคำสั่งนี้จะเรียกบริการที่ขึ้นอยู่กับบริการ Winmgmt และจัดเก็บไว้ในตัวแปรชื่อ $s Get-CimAssociatedInstance รับอินสแตนซ์ที่เกี่ยวข้องของคลาสการเชื่อมโยงที่ดึงข้อมูล
$s = Get-CimInstance -Query "Select * from Win32_Service where name like 'Winmgmt'"
Get-CimAssociatedInstance -InputObject $s -Association Win32_DependentService
ProcessId Name StartMode State Status ExitCode
--------- ---- --------- ----- ------ --------
1716 RpcSs Auto Running OK 0
9964 CcmExec Auto Running OK 0
0 HgClientService Manual Stopped OK 1077
0 smstsmgr Manual Stopped OK 1077
3396 vmms Auto Running OK 0พารามิเตอร์
-Association
ระบุชื่อของคลาสการเชื่อมโยง หากคุณไม่ระบุพารามิเตอร์นี้ cmdlet จะส่งกลับออบเจ็กต์การเชื่อมโยงที่มีอยู่ทั้งหมดทุกประเภท
ตัวอย่างเช่น หากคลาส A เชื่อมโยงกับคลาส B ผ่านการเชื่อมโยงสองรายการ คือ AB1 และ AB2 พารามิเตอร์นี้สามารถใช้เพื่อระบุประเภทของการเชื่อมโยง ไม่ว่าจะเป็น AB1 หรือ AB2
- พิมพ์ :
String
- ตำแหน่ง:
1
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
-
False
-CimSession
รันคำสั่งโดยใช้เซสชัน CIM ที่ระบุ ป้อนตัวแปรที่มีเซสชัน CIM หรือคำสั่งที่สร้างหรือรับเซสชัน CIM เช่น New-CimSession หรือ Get-CimSession สำหรับข้อมูลเพิ่มเติม โปรดดูที่ about_CimSession
- พิมพ์ :
ซิมเซสชั่น[]
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-ComputerName
ระบุชื่อของคอมพิวเตอร์ที่คุณต้องการรันการดำเนินการ CIM คุณสามารถระบุชื่อโดเมนแบบเต็ม (FQDN) หรือชื่อ NetBIOS ได้
หากคุณระบุพารามิเตอร์นี้ cmdlet จะสร้างเซสชันชั่วคราวไปยังคอมพิวเตอร์ที่ระบุโดยใช้โปรโตคอล WsMan
หากคุณไม่ได้ระบุพารามิเตอร์นี้ cmdlet จะดำเนินการบนเครื่องคอมพิวเตอร์โดยใช้ Component Object Model (COM)
หากมีการดำเนินการหลายอย่างบนคอมพิวเตอร์เครื่องเดียวกัน การเชื่อมต่อโดยใช้เซสชัน CIM จะให้ประสิทธิภาพที่ดีขึ้น
- พิมพ์ :
String[]
- นามแฝง :
CN, ServerName
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-InputObject
ระบุอินพุตไปยัง cmdlet นี้ คุณสามารถใช้พารามิเตอร์นี้ หรือคุณสามารถไพพ์อินพุตไปยัง cmdlet นี้
พารามิเตอร์ InputObject ไม่ได้ระบุมากกว่าคอลเลกชัน หากคอลเลกชันผ่านไป จะเกิดข้อผิดพลาด เมื่อทำงานกับคอลเลกชัน ให้ไปป์อินพุตเพื่อระบุค่า
- พิมพ์ :
CimInstance
- นามแฝง :
CimInstance
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-KeyOnly
ส่งคืนออบเจ็กต์ที่มีคุณสมบัติคีย์เท่านั้นที่เติมข้อมูล ซึ่งจะช่วยลดปริมาณข้อมูลที่ถ่ายโอนผ่านเครือข่าย
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Namespace
ระบุเนมสเปซสำหรับการดำเนินการ CIM เนมสเปซดีฟอลต์คือ root/cimv2
บันทึก
คุณสามารถใช้การทำให้แท็บสมบูรณ์เพื่อเรียกดูรายการเนมสเปซได้ เนื่องจาก PowerShell รับรายการเนมสเปซจากเซิร์ฟเวอร์ WMI ภายในเครื่องเพื่อจัดเตรียมรายการเนมสเปซ
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-OperationTimeoutSec
ระบุระยะเวลาที่ cmdlet รอการตอบสนองจากคอมพิวเตอร์ โดยค่าเริ่มต้น ค่าของพารามิเตอร์นี้คือ 0 ซึ่งหมายความว่า cmdlet ใช้ค่าการหมดเวลาเริ่มต้นสำหรับเซิร์ฟเวอร์
หากพารามิเตอร์ OperationTimeoutSec ถูกตั้งค่าน้อยกว่าการหมดเวลาการลองเชื่อมต่อที่มีประสิทธิภาพซึ่งอยู่ที่ 3 นาที ความล้มเหลวของเครือข่ายที่ยาวนานกว่าค่าของพารามิเตอร์ OperationTimeoutSec จะไม่สามารถกู้คืนได้ เนื่องจากการดำเนินการบนเซิร์ฟเวอร์หมดเวลาก่อนที่ไคลเอ็นต์จะสามารถเชื่อมต่อใหม่ได้
- พิมพ์ :
UInt32
- นามแฝง :
OT
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
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
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-ResultClassName
ระบุชื่อคลาสของอินสแตนซ์ที่เกี่ยวข้อง อินสแตนซ์ CIM สามารถเชื่อมโยงกับอินสแตนซ์ CIM ได้ตั้งแต่หนึ่งรายการขึ้นไป อินสแตนซ์ CIM ที่เกี่ยวข้องทั้งหมดจะถูกส่งคืน หากคุณไม่ได้ระบุชื่อคลาสผลลัพธ์
โดยดีฟอลต์ ค่าของพารามิเตอร์นี้เป็น null และอินสแตนซ์ CIM ที่เกี่ยวข้องทั้งหมดจะถูกส่งคืน
คุณสามารถกรองผลลัพธ์การเชื่อมโยงเพื่อให้ตรงกับชื่อคลาสที่ระบุได้ การกรองเกิดขึ้นบนเซิร์ฟเวอร์ หากไม่ได้ระบุพารามิเตอร์นี้ Get-CIMAssociatedInstance จะส่งกลับการเชื่อมโยงที่มีอยู่ทั้งหมด ตัวอย่างเช่น หากคลาส A เชื่อมโยงกับคลาส B, C และ D พารามิเตอร์นี้สามารถใช้เพื่อจำกัดเอาต์พุตให้เป็นประเภทเฉพาะ (B, C หรือ D)
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
อินพุต
ไม่มี
คุณไม่สามารถไปป์วัตถุกับ cmdlet นี้
เอาท์พุต
CimInstance
cmdlet นี้ส่งคืนวัตถุอินสแตนซ์ CIM
หมายเหตุ
PowerShell มีนามแฝงต่อไปนี้สำหรับ Get-CimAssociatedInstance:
Windows:
gcai
cmdlet นี้ใช้ได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น