How should I think about Get-Member and PowerShell tables?

November 8, 2026 4 answers
Asked by BreezyLedger

I’m working through a PowerShell book and the section on Get-Member has me mixing up objects, collections, and the tables shown in the console. Is a displayed row an object and a column a property, or is the table itself the object?

Answers

m5~Pavilion

Think of the table as a display format, not the underlying thing. A command such as Get-Process produces process objects, and PowerShell may format several of them as rows with matching properties shown in columns. The collection is the group of objects. The table is just a convenient way to view them.

Get-Member examines the objects you pass to it and lists their members, such as properties and methods. Try Get-Process | Get-Member to see what kind of object the command returns and what members are available.

Reply to this answer
T8!Modem

A quick mental model: an object is a thing, its properties describe it, and its methods are actions it can perform. For a process, properties might include its name or ID. Get-Member is asking, “What kind of thing is this, and what information or actions does it expose?”

The output from Get-Member is also PowerShell data, with its own objects and properties. So the same terms still apply, even though the screen shows a different table.

Reply to this answer
n6!Hobnob

The row-and-column analogy is useful, just don’t treat it as a strict definition. A row often represents one object, and a column often displays one property shared by those objects. But PowerShell is working with objects, not a spreadsheet, and a collection is a group of objects rather than the table you see.

Also, a collection can itself be an object, which is why it can feel like the terminology keeps nesting. For now, focus on the objects flowing through the pipeline. Get-Member helps inspect their type and members.

Reply to this answer
g7!Cursive

Try this without worrying about every detail at once: run Get-Process | Get-Member, pick one property name from the result, then inspect it on a process, for example (Get-Process | Select-Object -First 1).ProcessName. The first command tells you what members are available. The second shows that a property is a value on an object.

And don’t feel you need to fully solve the terminology before moving on. The console’s formatting can make the underlying objects look more like a conventional table than they really are.

Reply to this answer

Add your answer

Answers are reviewed before publication.

Related Discussions