การขยาย PowerShell ด้วยชุดคุณสมบัติแบบกำหนดเอง
หากคุณติดตามบล็อกเมื่อเร็วๆ นี้ คุณได้อ่านเกี่ยวกับการใช้ส่วนขยายประเภท PowerShell ของฉันแล้ว นี่เป็นวิธีเพิ่มคุณสมบัติใหม่ให้กับสิ่งที่ฉันใช้ตลอดเวลา เป้าหมายคือการประหยัดการพิมพ์และรับสิ่งที่ฉันต้องการโดยใช้ความพยายามเพียงเล็กน้อย คุณยังสามารถก้าวไปอีกขั้นด้วยการสร้างชุดคุณสมบัติของคุณเอง
คุณอาจไม่รู้ แต่ PowerShell ใช้ชุดคุณสมบัติอยู่แล้ว นี่คือตัวอย่างที่คุณสามารถลองด้วยตัวเอง
ไหนว่ามาจากไหน? ไปป์รับกระบวนการเพื่อรับสมาชิกและดูด้วยตัวคุณเอง
ชุดคุณสมบัติเป็นวิธีทางลัดในการเลือกชุดย่อยของคุณสมบัติ คุณยังสามารถกำหนดชุดคุณสมบัติได้ ลองใช้ส่วนขยาย Hyper-V ของฉันที่อนุญาตให้ฉันเรียกใช้คำสั่งดังนี้:
ฉันอาจอยากเห็นคุณสมบัติกลุ่มนี้บ่อยๆ แต่เห็นได้ชัดว่าฉันไม่ต้องการพิมพ์สิ่งนี้ตลอดเวลา คุณสามารถกำหนดชุดคุณสมบัติใหม่ได้ด้วย Update-TypeData cmdlet แต่จะต้องใช้ความพยายามเพิ่มขึ้นอีกเล็กน้อย น่าเสียดายที่ไม่มีพารามิเตอร์ที่ใช้งานง่าย คุณต้องสร้างไฟล์ ps1xml แทนดังนี้:
<?xml version="1.0" encoding="utf-8" ?>
<Types>
<Type>
<Name>Microsoft.HyperV.PowerShell.VirtualMachine</Name>
<Members>
<PropertySet>
<Name>PSConfig</Name>
<ReferencedProperties>
<Name>VMName</Name>
<Name>State</Name>
<Name>DynamicMemoryEnabled</Name>
<Name>DiskPath</Name>
<Name>TestVHD</Name>
<Name>ConfigurationFile</Name>
</ReferencedProperties>
</PropertySet>
</Members>
</Type>
</Types>
หวังว่านี่ไม่น่าจะอ่านยากเกินไป ฉันกำลังกำหนดสมาชิกชุดคุณสมบัติสำหรับประเภท VirtualMachine ด้วยชื่อ PSConfig ชุดคุณสมบัตินี้จะใช้ชื่อคุณสมบัติที่อ้างอิง คุณสามารถเพิ่มคำจำกัดความสำหรับประเภทอื่นๆ ในไฟล์ XML เดียวกันได้ แต่ฉันไม่ได้เป็นเช่นนั้น ฉันจึงตั้งชื่อไฟล์นี้ว่า MyHyperV.types.ps1xml ชื่อไม่สำคัญจริงๆ แต่รูปแบบคือการใช้ types.ps1xml เป็นส่วนหนึ่งของชื่อไฟล์
หากต้องการโหลดไฟล์นี้ ฉันเพิ่มบรรทัดนี้ลงในสคริปต์โปรไฟล์ PowerShell ของฉัน
Update-TypeData -AppendPath c:\scripts\MyHyperV.types.ps1xml
ฉันไม่ได้กำหนดสิ่งใดที่ขัดแย้งกับคำจำกัดความแบบสำเร็จรูป ดังนั้นจึงไม่สำคัญว่าฉันจะเติมหน้าหรือต่อท้าย ตอนนี้ชีวิตของฉันง่ายขึ้นมาก
ฉันสามารถเห็นคำจำกัดความใหม่ด้วย Get-Member
XML อาจดูน่ากังวลเล็กน้อยในตอนแรก แต่เมื่อคุณมีโครงร่างแล้ว ก็ควรเป็นเรื่องง่ายในการตัดและวาง อย่าลืมดูแท็กและเคสของคุณ
สิ่งนี้ดูเหมือนสิ่งที่คุณต้องการใช้หรือไม่?