Default Cmdlet Output vs Get-member Properties

This topic contains 2 replies, has 2 voices, and was last updated by  Harsha 1 year, 1 month ago.

  • Author
  • #72385



    I am trying to get an idea behind the scenes of default output vs get-member property results.


    Test-Connection -ComputerName   -- gives following ouput 
    Source   Destination  IPV4Address  IPV6Address  Bytes Time(ms)
    --        --            --           --          --     --

    Test-Connection | Get-Member -MemberType Property

    TypeName: System.Management.ManagementObject#root\cimv2\Win32_PingStatus

    Name MemberType Definition
    ---- ---------- ----------
    Address Property string Address {get;set;}
    BufferSize Property uint32 BufferSize {get;set;}
    NoFragmentation Property bool NoFragmentation {get;set;}
    PrimaryAddressResolutionStatus Property uint32 PrimaryAddressResolutionStatus {get;set;}
    ProtocolAddress Property string ProtocolAddress {get;set;}
    ProtocolAddressResolved Property string ProtocolAddressResolved {get;set;}
    RecordRoute Property uint32 RecordRoute {get;set;}
    ReplyInconsistency Property bool ReplyInconsistency {get;set;}
    ReplySize Property uint32 ReplySize {get;set;}
    ResolveAddressNames Property bool ResolveAddressNames {get;set;}
    ResponseTime Property uint32 ResponseTime {get;set;}
    ResponseTimeToLive Property uint32 ResponseTimeToLive {get;set;}
    RouteRecord Property string[] RouteRecord {get;set;}
    RouteRecordResolved Property string[] RouteRecordResolved {get;set;}
    SourceRoute Property string SourceRoute {get;set;}
    SourceRouteType Property uint32 SourceRouteType {get;set;}
    StatusCode Property uint32 StatusCode {get;set;}
    Timeout Property uint32 Timeout {get;set;}

    I have to cut few results due to length, but the point is i couldn't find the default output properties (except 2) in the GM list. What am i missing here? Appreciate your wisdom and time!


  • #72397

    Don Jones

    You have to understand how the formatting system works – it constructs the default display, and can provide different column headers than the underlying property names. It can also create on-the-fly calculated properties. It may be easier to run your command and pipe it to

    | Format-list *

    As you'll then bypass the default view and just get the raw dump, a la Get-Member, but including property values. There's a whole chapter in "Learn Windows PowerShell in a Month of Lunches" on this, as it's one of the many common "gotchas" people run into with PowerShell.

  • #72433


    Thanks for prompt reply. I see what you are saying. So, the default output is entirely upto Microsoft Powershell Team to give viewers a quick meaningful results by calculating and formatting.

    The time I realized to learn powershell, most people recommended your "Learn Windows Powershell in a Month of Lunches" book, It was awesome so far. Day-5 is in the progress..

    Anyways, Thank you so much. It would be wise to wait till completion of entire book and post Questions.

You must be logged in to reply to this topic.