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

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

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