Add-Member (Microsoft.PowerShell.Utility)
Add-Member
- โมดูล :
- Microsoft.PowerShell.Utility
เพิ่มคุณสมบัติและวิธีการแบบกำหนดเองให้กับอินสแตนซ์ของวัตถุ PowerShell
ไวยากรณ์
Add-Member
-InputObject <PSObject>
-TypeName <String>
[-PassThru]
[<CommonParameters>]Add-Member
-InputObject <PSObject>
[-TypeName <String>]
[-Force]
[-PassThru]
[-NotePropertyMembers] <IDictionary>
[<CommonParameters>]Add-Member
-InputObject <PSObject>
[-TypeName <String>]
[-Force]
[-PassThru]
[-NotePropertyName] <String>
[-NotePropertyValue] <Object>
[<CommonParameters>]Add-Member
-InputObject <PSObject>
[-MemberType] <PSMemberTypes>
[-Name] <String>
[[-Value] <Object>]
[[-SecondValue] <Object>]
[-TypeName <String>]
[-Force]
[-PassThru]
[<CommonParameters>]คำอธิบาย
Add-Member cmdlet ช่วยให้คุณสามารถเพิ่มสมาชิก (คุณสมบัติและวิธีการ) ให้กับอินสแตนซ์ของวัตถุ PowerShell ตัวอย่างเช่น คุณสามารถเพิ่มสมาชิก NoteProperty ที่มีคำอธิบายของออบเจ็กต์หรือสมาชิก ScriptMethod ที่รันสคริปต์เพื่อเปลี่ยนออบเจ็กต์
หากต้องการใช้ Add-Member ให้ไปป์วัตถุไปที่ Add-Member หรือใช้พารามิเตอร์ InputObject เพื่อระบุวัตถุ
พารามิเตอร์ MemberType ระบุประเภทของสมาชิกที่คุณต้องการเพิ่ม พารามิเตอร์ ชื่อ กำหนดชื่อให้กับสมาชิกใหม่ และพารามิเตอร์ ค่า จะตั้งค่าของสมาชิก
คุณสมบัติและวิธีการที่คุณเพิ่มจะถูกเพิ่มไปยังอินสแตนซ์เฉพาะของออบเจ็กต์ที่คุณระบุเท่านั้น Add-Member ไม่เปลี่ยนประเภทออบเจ็กต์ หากต้องการสร้างประเภทออบเจ็กต์ใหม่ ให้ใช้ Add-Type cmdlet
คุณยังสามารถใช้ Export-Clixml cmdlet เพื่อบันทึกอินสแตนซ์ของออบเจ็กต์ รวมถึงสมาชิกเพิ่มเติมในไฟล์ จากนั้นคุณสามารถใช้ Import-Clixml cmdlet เพื่อสร้างอินสแตนซ์ของออบเจ็กต์ใหม่จากข้อมูลที่เก็บไว้ในไฟล์ที่ส่งออก
เริ่มต้นใน Windows PowerShell 3.0 Add-Member มีคุณลักษณะใหม่ๆ ที่ทำให้การเพิ่มคุณสมบัติบันทึกย่อลงในออบเจ็กต์ทำได้ง่ายขึ้น คุณสามารถใช้พารามิเตอร์ NotePropertyName และ NotePropertyValue เพื่อกำหนดคุณสมบัติบันทึกย่อ หรือใช้พารามิเตอร์ NotePropertyMembers ซึ่งรับตารางแฮชของชื่อคุณสมบัติบันทึกย่อและ ค่านิยม
นอกจากนี้ ตั้งแต่ Windows PowerShell 3.0 เป็นต้นไป พารามิเตอร์ PassThru ซึ่งสร้างออบเจ็กต์เอาต์พุตก็มีความจำเป็นน้อยลง Add-Member ตอนนี้เพิ่มสมาชิกใหม่โดยตรงไปยังวัตถุอินพุตประเภทอื่น ๆ สำหรับข้อมูลเพิ่มเติม โปรดดูคำอธิบายพารามิเตอร์ PassThru
ตัวอย่าง
ตัวอย่างที่ 1: เพิ่มคุณสมบัติบันทึกย่อให้กับ PSObject
ตัวอย่างต่อไปนี้เพิ่มคุณสมบัติบันทึก สถานะ ที่มีค่า "เสร็จสิ้น" ให้กับออบเจ็กต์ FileInfo ที่แสดงถึงไฟล์ Test.txt
คำสั่งแรกใช้ Get-ChildItem cmdlet เพื่อรับออบเจ็กต์ FileInfo ที่แสดงไฟล์ Test.txt มันจะบันทึกไว้ในตัวแปร $a
คำสั่งที่สองเพิ่มคุณสมบัติบันทึกให้กับวัตถุใน $a
คำสั่งที่สามใช้เครื่องหมายจุดเพื่อรับค่าของคุณสมบัติ สถานะ ของวัตถุใน $a ตามที่แสดงผลลัพธ์ ค่าจะเป็น Done
$A = Get-ChildItem c:\ps-test\test.txt
$A | Add-Member -NotePropertyName Status -NotePropertyValue Done
$A.Status
Doneตัวอย่างที่ 2: เพิ่มคุณสมบัตินามแฝงให้กับ PSObject
ตัวอย่างต่อไปนี้เพิ่มคุณสมบัตินามแฝง Size ให้กับออบเจ็กต์ที่แสดงถึงไฟล์ Test.txt คุณสมบัติใหม่เป็นนามแฝงสำหรับคุณสมบัติ ความยาว
คำสั่งแรกใช้ Get-ChildItem cmdlet เพื่อรับวัตถุ Test.txt FileInfo
คำสั่งที่สองจะเพิ่มคุณสมบัตินามแฝง ขนาด คำสั่งที่สามใช้เครื่องหมายจุดเพื่อรับค่าของคุณสมบัติ ขนาด ใหม่
$A = Get-ChildItem C:\Temp\test.txt
$A | Add-Member -MemberType AliasProperty -Name Size -Value Length
$A.Size
2394ตัวอย่างที่ 3: เพิ่มคุณสมบัติบันทึกย่อ StringUse ให้กับสตริง
ตัวอย่างนี้เพิ่มคุณสมบัติบันทึกย่อ StringUse ให้กับสตริง เนื่องจาก Add-Member ไม่สามารถเพิ่มประเภทให้กับออบเจ็กต์อินพุต String ได้ คุณจึงสามารถระบุพารามิเตอร์ PassThru เพื่อสร้างออบเจ็กต์เอาต์พุตได้ คำสั่งสุดท้ายในตัวอย่างแสดงคุณสมบัติใหม่
ตัวอย่างนี้ใช้พารามิเตอร์ NotePropertyMembers ค่าของพารามิเตอร์ NotePropertyMembers คือตารางแฮช คีย์คือชื่อคุณสมบัติของโน้ต StringUse และค่าคือค่าคุณสมบัติของโน้ต ดิสเพลย์
$A = "A string"
$A = $A | Add-Member -NotePropertyMembers @{StringUse="Display"} -PassThru
$A.StringUse
Displayตัวอย่างที่ 4: เพิ่มวิธีสคริปต์ให้กับวัตถุ FileInfo
ตัวอย่างนี้เพิ่มวิธีสคริปต์ SizeInMB ให้กับออบเจ็กต์ FileInfo ซึ่งจะคำนวณขนาดไฟล์เป็นเมกะไบต์ที่ใกล้ที่สุด คำสั่งที่สองจะสร้าง ScriptBlock ที่ใช้วิธีการคงที่ Round จากประเภท [math] เพื่อปัดเศษขนาดไฟล์ให้เป็นทศนิยมตำแหน่งที่สอง
พารามิเตอร์ Value ยังใช้ตัวแปรอัตโนมัติ $This ซึ่งแสดงถึงออบเจ็กต์ปัจจุบัน ตัวแปร $This ใช้ได้เฉพาะในบล็อกสคริปต์ที่กำหนดคุณสมบัติและวิธีการใหม่เท่านั้น
คำสั่งสุดท้ายใช้เครื่องหมายจุดเพื่อเรียกเมธอดสคริปต์ SizeInMB ใหม่บนออบเจ็กต์ในตัวแปร $A
$A = Get-ChildItem C:\Temp\test.txt
$S = {[math]::Round(($this.Length / 1MB), 2)}
$A | Add-Member -MemberType ScriptMethod -Name "SizeInMB" -Value $S
$A.SizeInMB()
0.43ตัวอย่างที่ 5: สร้างออบเจ็กต์แบบกำหนดเอง
ตัวอย่างนี้สร้างออบเจ็กต์ที่กำหนดเองเนื้อหา
New-Object cmdlet สร้าง PSObject ที่บันทึกไว้ในตัวแปร $Asset ตัวเร่งความเร็วประเภท [สั่ง] สร้างพจนานุกรมเรียงลำดับที่เก็บไว้ในตัวแปร $d การไพพ์ $Asset ไปยัง Add-Member จะเพิ่มคู่คีย์-ค่าในพจนานุกรมให้กับออบเจ็กต์เป็นสมาชิก NoteProperty พารามิเตอร์ TypeName กำหนดประเภท Asset ให้กับ PSObject Get-Member cmdlet แสดงประเภทและคุณสมบัติของวัตถุ อย่างไรก็ตาม คุณสมบัติจะแสดงตามลำดับตัวอักษร ไม่ใช่ตามลำดับที่เพิ่ม
$Asset = New-Object -TypeName PSObject
$d = [ordered]@{Name="Server30"; System="Server Core"; PSVersion="4.0"}
$Asset | Add-Member -NotePropertyMembers $d -TypeName Asset
$Asset | Get-Member -MemberType Properties
TypeName: Asset
Name MemberType Definition
---- ---------- ----------
Name NoteProperty string Name=Server30
PSVersion NoteProperty string PSVersion=4.0
System NoteProperty string System=Server Core
$Asset.PSObject.Properties | Format-Table Name, MemberType, TypeNameOfValue, Value
Name MemberType TypeNameOfValue Value
---- ---------- --------------- -----
Name NoteProperty System.String Server30
System NoteProperty System.String Server Core
PSVersion NoteProperty System.String 4.0การตรวจสอบรายการคุณสมบัติดิบจะแสดงคุณสมบัติตามลำดับที่เพิ่มลงในออบเจ็กต์ Format-Table ใช้ในตัวอย่างนี้เพื่อสร้างผลลัพธ์ที่คล้ายกับ Get-Member
ตัวอย่างที่ 6: เพิ่ม AliasProperty ให้กับออบเจ็กต์
ในตัวอย่างนี้ เราสร้างออบเจ็กต์แบบกำหนดเองที่มีสมาชิก NoteProperty สองคน ประเภทของ NoteProperty สะท้อนถึงประเภทของค่าที่จัดเก็บไว้ในคุณสมบัติ ในกรณีนี้ คุณสมบัติ อายุ จะเป็นสตริง
PS> $obj = [pscustomobject]@{
Name = 'Doris'
Age = '20'
}
PS> $obj | Add-Member -MemberType AliasProperty -Name 'intAge' -Value age -SecondValue uint32
PS> $obj | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
intAge AliasProperty intAge = (System.UInt32)age
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Age NoteProperty string Age=20
Name NoteProperty string Name=Doris
PS> $obj
Name Age intAge
---- --- ------
Doris 20 20
PS> $obj.Age + 1
201
PS> $obj.intAge + 1
21พร็อพเพอร์ตี้ intAge คือ AliasProperty สำหรับพร็อพเพอร์ตี้ Age แต่รับประกันว่าประเภทจะเป็น uint32
ตัวอย่างที่ 7: เพิ่มรับและตั้งค่าวิธีการให้กับวัตถุที่กำหนดเอง
ตัวอย่างนี้แสดงวิธีการกำหนดวิธีการ รับ และ ตั้งค่า ที่เข้าถึงคุณสมบัติที่ซ้อนกันแบบลึก
$user = [pscustomobject]@{
Name = 'User1'
Age = 29
StartDate = [datetime]'2019-05-05'
Position = [pscustomobject]@{
DepartmentName = 'IT'
Role = 'Manager'
}
}
$addMemberSplat = @{
MemberType = 'ScriptProperty'
Name = 'Title'
Value = { $this.Position.Role } # getter
SecondValue = { $this.Position.Role = $args[0] } # setter
}
$user | Add-Member @addMemberSplat
$user | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Age NoteProperty int Age=29
Name NoteProperty string Name=User1
Position NoteProperty System.Management.Automation.PSCustomObject Position=@{DepartmentName=IT; Role=Manager}
StartDate NoteProperty datetime StartDate=5/5/2019 12:00:00 AM
Title ScriptProperty System.Object Title {get= $this.Position.Role ;set= $this.Position.Role = $args[0] ;}
$user.Title = 'Dev Manager'
Name : User1
Age : 29
StartDate : 5/5/2019 12:00:00 AM
Position : @{DepartmentName=IT; Role=Dev Manager}
Title : Dev Managerโปรดสังเกตว่าคุณสมบัติ Title เป็น ScriptProperty ที่มีเมธอด Get และ Set เมื่อเรากำหนดค่าใหม่ให้กับคุณสมบัติ Title วิธีการ Set จะถูกเรียกและเปลี่ยนค่าของคุณสมบัติ Role ใน ตำแหน่ง คุณสมบัติ
พารามิเตอร์
-Force
ตามค่าเริ่มต้น Add-Member ไม่สามารถเพิ่มสมาชิกใหม่ได้หากออบเจ็กต์มีสมาชิกที่เหมือนกันอยู่แล้ว เมื่อคุณใช้พารามิเตอร์ บังคับ เพิ่มสมาชิก จะแทนที่สมาชิกที่มีอยู่ด้วยสมาชิกใหม่ คุณไม่สามารถใช้พารามิเตอร์ Force เพื่อแทนที่สมาชิกมาตรฐานของประเภท
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-InputObject
ระบุออบเจ็กต์ที่จะเพิ่มสมาชิกใหม่ ป้อนตัวแปรที่มีวัตถุ หรือพิมพ์คำสั่งหรือนิพจน์ที่ได้รับวัตถุ
- พิมพ์ :
PSObject
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-MemberType
ระบุประเภทของสมาชิกที่จะเพิ่ม จำเป็นต้องมีพารามิเตอร์นี้ ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:
- AliasProperty
- CodeMethod
- CodeProperty
- NoteProperty
- ScriptMethod
- ScriptProperty
สำหรับข้อมูลเกี่ยวกับค่าเหล่านี้ ดูการแจงนับ PSMemberTypes ใน PowerShell SDK
อ็อบเจ็กต์ทั้งหมดไม่ได้มีสมาชิกทุกประเภท ถ้าคุณระบุประเภทสมาชิกที่วัตถุไม่มี PowerShell จะส่งกลับข้อผิดพลาด
- พิมพ์ :
PSMemberTypes
- นามแฝง :
Type
- ค่าที่ยอมรับ:
นามแฝงProperty, CodeMethod, CodeProperty, NoteProperty, ScriptMethod, ScriptProperty
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Name
ระบุชื่อของสมาชิกที่ cmdlet นี้เพิ่ม
- พิมพ์ :
String
- ตำแหน่ง:
1
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-NotePropertyMembers
ระบุพจนานุกรมแบบแฮชหรือแบบเรียงลำดับที่มีคู่คีย์-ค่าที่แสดงชื่อ NoteProperty และค่าต่างๆ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตารางแฮชและพจนานุกรมลำดับใน PowerShell โปรดดู about_Hash_Tables
พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0
- พิมพ์ :
พจนานุกรม
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-NotePropertyName
ระบุชื่อคุณสมบัติบันทึกย่อ
ใช้พารามิเตอร์นี้กับพารามิเตอร์ NotePropertyValue พารามิเตอร์นี้เป็นทางเลือก
พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0
- พิมพ์ :
String
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-NotePropertyValue
ระบุค่าคุณสมบัติบันทึกย่อ
ใช้พารามิเตอร์นี้กับพารามิเตอร์ NotePropertyName พารามิเตอร์นี้เป็นทางเลือก
พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0
- พิมพ์ :
วัตถุ
- ตำแหน่ง:
1
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-PassThru
ส่งกลับวัตถุที่เป็นตัวแทนของรายการที่คุณกำลังทำงานอยู่ ตามค่าเริ่มต้น cmdlet นี้ไม่สร้างผลลัพธ์ใดๆ
สำหรับวัตถุส่วนใหญ่ Add-Member จะเพิ่มสมาชิกใหม่ให้กับวัตถุอินพุต อย่างไรก็ตาม เมื่อวัตถุอินพุตเป็นสตริง Add-Member จะไม่สามารถเพิ่มสมาชิกลงในวัตถุอินพุตได้ สำหรับออบเจ็กต์เหล่านี้ ให้ใช้พารามิเตอร์ PassThru เพื่อสร้างออบเจ็กต์เอาต์พุต
ใน Windows PowerShell 2.0 Add-Member เพิ่มสมาชิกเฉพาะใน wrapper PSObject ของอ็อบเจ็กต์ ไม่ใช่กับอ็อบเจ็กต์ ใช้พารามิเตอร์ PassThru เพื่อสร้างออบเจ็กต์เอาต์พุตสำหรับออบเจ็กต์ใดๆ ที่มี wrapper PSObject
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-SecondValue
ระบุข้อมูลเพิ่มเติมที่ไม่บังคับเกี่ยวกับสมาชิก AliasProperty, ScriptProperty หรือ CodeProperty
หากใช้เมื่อเพิ่ม AliasProperty พารามิเตอร์นี้ต้องเป็นประเภทข้อมูล การแปลงเป็นประเภทข้อมูลที่ระบุจะถูกเพิ่มลงในค่าของ AliasProperty ตัวอย่างเช่น หากคุณเพิ่ม AliasProperty ที่ให้ชื่ออื่นสำหรับคุณสมบัติสตริง คุณยังสามารถระบุพารามิเตอร์ SecondValue ของ System.Int32 เพื่อระบุว่าค่าของคุณสมบัติสตริงนั้นควรแปลงเป็นจำนวนเต็มเมื่อเข้าถึงโดยใช้ AliasProperty ที่เกี่ยวข้อง
สำหรับ CodeProperty ค่าจะต้องอ้างอิงถึงวิธีการที่ใช้ตัวเข้าถึง Set ใช้วิธี GetMethod() ของการอ้างอิงประเภทเพื่อรับการอ้างอิงถึงวิธีการ วิธีการนี้ต้องใช้พารามิเตอร์ตัวเดียวที่เป็น PSObject ตัวเข้าถึง รับ ถูกกำหนดโดยใช้พารามิเตอร์ ค่า
สำหรับ ScriptProperty ค่าจะต้องเป็นบล็อกสคริปต์ที่ใช้ตัวเข้าถึง Set ตัวเข้าถึง รับ ถูกกำหนดโดยใช้พารามิเตอร์ ค่า
- พิมพ์ :
วัตถุ
- ตำแหน่ง:
3
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-TypeName
ระบุชื่อสำหรับประเภท
เมื่อประเภทนั้นเป็นคลาสในเนมสเปซ ระบบ หรือประเภทที่มีตัวเร่งประเภท คุณสามารถป้อนชื่อย่อของประเภทได้ มิฉะนั้น จะต้องระบุชื่อเต็ม พารามิเตอร์นี้จะมีผลเฉพาะเมื่อ InputObject เป็น PSObject
พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Value
ระบุค่าเริ่มต้นของสมาชิกที่เพิ่ม หากคุณเพิ่มสมาชิก AliasProperty, CodeProperty หรือ ScriptProperty คุณสามารถระบุข้อมูลเพิ่มเติมได้โดยใช้พารามิเตอร์ SecondValue
- สำหรับ AliasProperty ค่าจะต้องเป็นชื่อของคุณสมบัติที่เป็นนามแฝง
- สำหรับ CodeMethod ค่าจะต้องอ้างอิงถึงวิธีการ ใช้วิธี
GetMethod()ของการอ้างอิงประเภทเพื่อรับการอ้างอิงถึงวิธีการ - สำหรับ CodeProperty ค่าจะต้องอ้างอิงถึงวิธีการที่ใช้ตัวเข้าถึง Get ใช้วิธี
GetMethod()ของการอ้างอิงประเภทเพื่อรับการอ้างอิงถึงวิธีการ อ้างอิง. วิธีการนี้ต้องใช้พารามิเตอร์ตัวเดียวที่เป็น PSObject ตัวเข้าถึง Set ถูกกำหนดโดยใช้พารามิเตอร์ SecondValue - สำหรับ ScriptMethod ค่าจะต้องเป็นบล็อกสคริปต์
- สำหรับ ScriptProperty ค่าจะต้องเป็นบล็อกสคริปต์ที่ใช้ตัวเข้าถึง Get ตัวเข้าถึง Set ถูกกำหนดโดยใช้พารามิเตอร์ SecondValue
- พิมพ์ :
วัตถุ
- ตำแหน่ง:
2
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
อินพุต
PSObject
คุณสามารถไปป์วัตถุใด ๆ ไปที่ cmdlet นี้
เอาท์พุต
ไม่มี
ตามค่าเริ่มต้น cmdlet นี้จะส่งกลับไม่มีผลลัพธ์
วัตถุ
เมื่อคุณใช้พารามิเตอร์ PassThru cmdlet นี้จะส่งกลับวัตถุที่ขยายใหม่
หมายเหตุ
คุณสามารถเพิ่มสมาชิกลงในวัตถุประเภท PSObject เท่านั้น หากต้องการตรวจสอบว่าวัตถุนั้นเป็นวัตถุ PSObject หรือไม่ ให้ใช้ตัวดำเนินการ -is ตัวอย่างเช่น หากต้องการทดสอบออบเจ็กต์ที่จัดเก็บไว้ในตัวแปร $obj ให้พิมพ์ $obj -is [psobject]
ออบเจ็กต์ประเภท PSObject จะรักษารายชื่อสมาชิกตามลำดับที่สมาชิกถูกเพิ่มเข้าไปในออบเจ็กต์
ชื่อของพารามิเตอร์ MemberType, ชื่อ, ค่า และ SecondValue เป็นทางเลือก หากคุณละชื่อพารามิเตอร์ ค่าพารามิเตอร์ที่ไม่มีชื่อจะต้องปรากฏในลำดับนี้: ประเภทสมาชิก, ชื่อ, ค่า และ SecondValue< /แข็งแกร่ง>.
หากคุณรวมชื่อพารามิเตอร์ พารามิเตอร์สามารถปรากฏในลำดับใดก็ได้
คุณสามารถใช้ตัวแปรอัตโนมัติ $this ในบล็อกสคริปต์ที่กำหนดค่าของคุณสมบัติและวิธีการใหม่ ตัวแปร $this อ้างอิงถึงอินสแตนซ์ของออบเจ็กต์ซึ่งมีการเพิ่มคุณสมบัติและวิธีการ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวแปร $this โปรดดู about_Automatic_Variables