Noob question sorry if very obvious

Welcome Forums General PowerShell Q&A Noob question sorry if very obvious

This topic contains 7 replies, has 4 voices, and was last updated by

js
 
Participant
1 month, 3 weeks ago.

  • Author
    Posts
  • #114522

    Participant
    Points: 20
    Rank: Member

    Hi Everyone,  my apologies in advance if this is a stupid question but I am working through the PowerShell in a month of lunches by Don Jones, and I'm stuck on a problem from Chapter 11.    I need to use Get-DnsClientCache and display a list of A and AAAA records from cache.  The problem I am having is I am unable to find the property "RecordType"  to complete this.  I've tried 

     Get-DnsClientCache | GM 

      and

     Get-DnsClientCache | Select-Object * 

    to see if I am missing any aliased properties but I am unable to find them.

    I've checked the full help and am just stuck at this point.  I dont want to just look at the answer in the book as that wont give me an understanding on how I can go find properties like this in the future for any other cmdlets.  Thank you all for your help.

  • #114544

    Participant
    Points: 261
    Helping Hand
    Rank: Contributor

    Did you try simply

    Get-DnsClientCache

    ? How does the output looks like?
    Did you try

    Get-DnsClientCache -Type AAAA,A

    ? Is this the result you're looking for?

    • #114616

      Participant
      Points: 20
      Rank: Member

      Hi Olaf, and thanks for your help my main problem was that when I did run the cmdlet I was not aware that "RecordType" and "Type" where the same field but just aliased.  Thanks again for your help.

  • #114552

    Participant
    Points: 870
    Helping Hand
    Rank: Major Contributor

    Got it, its because of the formatting system. The actual property is Type and the default formatting for DNSClient module(Where this cmdlet is from) changes it to Record Type

    I did a blog post a while back explaining similar behaviour for the another cmdlet from the same module. There the formatting was applied to the value, here its on the Property.
    Hint: You can check the third property in the view section of the formatting xml for this module.

    http://www.viapowershell.com/2016/06/hidden-formatting.html

    • #114613

      Participant
      Points: 20
      Rank: Member

      Thanks so much for your help and write up.  I did visit it and using your script I was able to open up the formating for Get-DnsClientCache and did find the information below showing how the proparty name is "type" but like you mentioned is aliased to "recordType".

      I really appreciate your help as this is something I can use continue to use in the future for any other similar situations.

       

  • #114619
    js

    Participant
    Points: 318
    Helping Hand
    Rank: Contributor

    Weird, recordtype appears in "get-dnsclientcache | select -first 1 | fl", but not "get-dnsclientcache | select -first 1 | fl *". I guess that's how the view in the format file is setup? (CimInstance object)(or not).

    PS C:\users\admin> get-dnsclientcache | select -first 1 | fl
    
    
    Entry      : njpl.yumenetworks.com
    RecordName : njpl.yumenetworks.com
    RecordType : A
    Status     : Success
    Section    : Answer
    TimeToLive : 2244
    DataLength : 4
    Data       : 199.127.206.130
    
    
    
    PS C:\users\admin> get-dnsclientcache | select -first 1 | fl *
    
    
    TTL                   : 2240
    Caption               :
    Description           :
    ElementName           :
    InstanceID            :
    Data                  : 199.127.206.130
    DataLength            : 4
    Entry                 : njpl.yumenetworks.com
    Name                  : njpl.yumenetworks.com
    Section               : 1
    Status                : 0
    TimeToLive            : 2240
    Type                  : 1
    PSComputerName        :
    CimClass              : ROOT/StandardCimv2:MSFT_DNSClientCache
    CimInstanceProperties : {Caption, Description, ElementName, InstanceID, Data, DataLength, Entry, Name, Section,
                            Status, TimeToLive, Type}
    CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties
    
  • #114714

    Participant
    Points: 870
    Helping Hand
    Rank: Major Contributor

    The default is Table view and when we do Format-List, it uses the list view(search for DnsClientCacheListView in the formatting xml).
    When you do Format-List * , AFAIK its again the same...

  • #114837
    js

    Participant
    Points: 318
    Helping Hand
    Rank: Contributor

    I don't believe "| fl *" uses the format file. Ok, I found "DnsClientCacheListView" in C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules\DnsClient\DnsConfig.Format.ps1xml. RecordType is generated like this. Some of the tags don't show in this forum. Using headers that don't match property names is confusing (especially in list view). I guess the object type is "Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientCache". "| ft *" would avoid the format file as well, but that's not as convenient.

     
                    
                      $type = $_.Type
                      $typefmt = switch ($type)
                      {
                          0       {"ZERO"}
                          1       {"A"}
                          2       {"NS"}
                          5       {"CNAME"}
                          6       {"SOA"}
                          12      {"PTR"}
                          15      {"MX"}
                          16      {"TEXT"}
                          24      {"SIG"}
                          25      {"KEY"}
                          28      {"AAAA"}
                          30      {"NXT"}
                          33      {"SRV"}
                          35      {"NAPTR"}
                          37      {"CERT"}
                          39      {"DNAME"}
                          41      {"OPT"}
                          43      {"DS"}
                          46      {"RRSIG"}
                          47      {"NSEC"}
                          48      {"DNSKEY"}
                          49      {"DHCID"}
                          50      {"NSEC3"}
                          51      {"NSEC3PARAM"}
                          255     {""}
                          default {$type}
                      }
                      return $typefmt
                    
    

You must be logged in to reply to this topic.