Bird
Raised Fist0
PowerShellscripting~5 mins

Adding properties to objects in PowerShell - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the simplest way to add a new property to an existing PowerShell object?
Use the <code>Add-Member</code> cmdlet with the <code>-NotePropertyName</code> and <code>-NotePropertyValue</code> parameters to add a new property.
Click to reveal answer
beginner
How do you add a property named Age with value 30 to a PowerShell object stored in variable $person?
Use: Add-Member -InputObject $person -NotePropertyName 'Age' -NotePropertyValue 30
Click to reveal answer
intermediate
Can you add properties directly by assignment like $object.NewProp = 'value' in PowerShell?
Yes, if the object supports it (like a custom object), you can add properties by direct assignment, e.g., $object.NewProp = 'value'.
Click to reveal answer
intermediate
What is the difference between Add-Member and direct property assignment in PowerShell?
Add-Member explicitly adds a property to an object and is useful for objects that don't support direct assignment. Direct assignment is simpler but works only on objects that allow dynamic properties.
Click to reveal answer
beginner
Why might you use New-Object PSObject -Property @{} when creating objects for adding properties?
Because PSObject supports adding properties dynamically, making it easy to create flexible objects and add properties later.
Click to reveal answer
Which cmdlet is commonly used to add a new property to an existing PowerShell object?
ASet-Property
BAdd-Member
CNew-Property
DAdd-Property
How do you add a property City with value Seattle to a custom object $obj using direct assignment?
A$obj | Add-Property City 'Seattle'
BAdd-Member -InputObject $obj -NotePropertyName 'City' -NotePropertyValue 'Seattle'
CSet-Property -Object $obj -Name City -Value 'Seattle'
D$obj.City = 'Seattle'
What happens if you try to add a property by direct assignment to an object that does not support dynamic properties?
AIt throws an error
BIt adds the property successfully
CIt silently ignores the assignment
DIt converts the object to a string
Which of the following creates a new object that supports adding properties dynamically?
ANew-Object PSObject -Property @{}
BNew-Object System.Object
CNew-Object String
DNew-Object Int32
What parameter do you use with Add-Member to specify the property name?
A-MemberName
B-PropertyName
C-NotePropertyName
D-Name
Explain two ways to add a new property to an existing PowerShell object and when you might use each.
Think about object types and how flexible they are.
You got /4 concepts.
    Describe how to create a new PowerShell object that allows adding properties easily and how to add a property to it.
    Start with creating the object, then add properties.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Add-Member cmdlet do in PowerShell when working with objects?
      easy
      A. It converts an object to a string.
      B. It adds new properties or methods to an existing object.
      C. It creates a new object from scratch.
      D. It deletes properties from an object.

      Solution

      1. Step 1: Understand Add-Member purpose

        Add-Member is used to add new properties or methods to an existing object without creating a new object.
      2. Step 2: Compare options

        Options A, B, and C describe converting, deleting, or creating objects, which are not the purpose of Add-Member.
      3. Final Answer:

        It adds new properties or methods to an existing object. -> Option B
      4. Quick Check:

        Add-Member adds properties/methods [OK]
      Hint: Add-Member adds properties or methods to existing objects [OK]
      Common Mistakes:
      • Thinking Add-Member creates new objects
      • Confusing Add-Member with Remove-Item
      • Assuming Add-Member converts objects to strings
      2. Which of the following is the correct syntax to add a NoteProperty named Age with value 30 to an existing object $person?
      easy
      A. Add-Member -Object $person -Type NoteProperty -Property Age -Value 30
      B. Add-Member -InputObject $person -MemberType NoteProperty -Property Age -Value 30
      C. Add-Member -InputObject $person -MemberType Property -Name Age -Value 30
      D. Add-Member -InputObject $person -MemberType NoteProperty -Name Age -Value 30

      Solution

      1. Step 1: Identify correct parameter names

        The correct parameters for Add-Member are -InputObject, -MemberType, -Name, and -Value.
      2. Step 2: Check member type and property name

        NoteProperty is the correct member type for adding simple properties. The property name is specified with -Name.
      3. Final Answer:

        Add-Member -InputObject $person -MemberType NoteProperty -Name Age -Value 30 -> Option D
      4. Quick Check:

        Correct syntax uses -InputObject, -MemberType, -Name, -Value [OK]
      Hint: Use -InputObject, -MemberType NoteProperty, -Name, and -Value [OK]
      Common Mistakes:
      • Using -Object instead of -InputObject
      • Using -Property instead of -Name
      • Using MemberType Property instead of NoteProperty
      3. What will be the output of this PowerShell code?
      $obj = New-Object PSObject
      Add-Member -InputObject $obj -MemberType NoteProperty -Name Color -Value 'Red'
      Write-Output $obj.Color
      medium
      A. Red
      B. Color
      C. PSObject
      D. Error: Property not found

      Solution

      1. Step 1: Add NoteProperty 'Color' with value 'Red'

        The Add-Member cmdlet adds a property named Color with value 'Red' to the object $obj.
      2. Step 2: Output the property value

        Write-Output $obj.Color accesses the added property and prints its value, which is Red.
      3. Final Answer:

        Red -> Option A
      4. Quick Check:

        Access added property with dot notation [OK]
      Hint: Access added properties with dot notation like $obj.Property [OK]
      Common Mistakes:
      • Expecting property name instead of value
      • Forgetting to add the property before accessing
      • Using wrong property name in output
      4. Identify the error in this PowerShell script that tries to add a property Height to $obj:
      $obj = New-Object PSObject
      Add-Member -InputObject $obj -MemberType NoteProperty -Property Height -Value 180
      Write-Output $obj.Height
      medium
      A. The value 180 must be a string, not a number.
      B. The object $obj is not created properly.
      C. The parameter '-Property' should be '-Name' when adding a property.
      D. Write-Output cannot access properties added by Add-Member.

      Solution

      1. Step 1: Check Add-Member parameters

        The parameter to specify the property name is -Name, not -Property. Using -Property causes an error.
      2. Step 2: Confirm object creation and output

        $obj is correctly created. The value 180 can be a number. Write-Output can access added properties if correctly added.
      3. Final Answer:

        The parameter '-Property' should be '-Name' when adding a property. -> Option C
      4. Quick Check:

        Use -Name to specify property name in Add-Member [OK]
      Hint: Use -Name, not -Property, to name new properties [OK]
      Common Mistakes:
      • Using -Property instead of -Name
      • Thinking numeric values must be strings
      • Assuming Write-Output can't show added properties
      5. You have an object $car with properties Make and Model. You want to add a new property Year only if it does not already exist. Which script correctly does this?
      hard
      A. if (-not $car.PSObject.Properties.Name -contains 'Year') { Add-Member -InputObject $car -MemberType NoteProperty -Name Year -Value 2023 }
      B. if ($car.Year -eq $null) { Add-Member -InputObject $car -MemberType NoteProperty -Name Year -Value 2023 }
      C. Add-Member -InputObject $car -MemberType NoteProperty -Name Year -Value 2023 -Force
      D. Add-Member -InputObject $car -MemberType NoteProperty -Name Year -Value 2023

      Solution

      1. Step 1: Check if property 'Year' exists

        Using $car.PSObject.Properties.Name -contains 'Year' checks if the property exists. The -not negates it to add only if missing.
      2. Step 2: Add property conditionally

        If 'Year' does not exist, Add-Member adds it with value 2023. This avoids errors from duplicate properties.
      3. Final Answer:

        if (-not $car.PSObject.Properties.Name -contains 'Year') { Add-Member -InputObject $car -MemberType NoteProperty -Name Year -Value 2023 } -> Option A
      4. Quick Check:

        Check property existence before adding to avoid duplicates [OK]
      Hint: Check property names with $obj.PSObject.Properties.Name before adding [OK]
      Common Mistakes:
      • Adding property without checking existence causes errors
      • Using -Force blindly overwrites properties
      • Checking property value instead of existence
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard