As I mentioned in last week’s post, “PowerShell v2 and DNS Queries…“, it is much easier to do scripted DNS queries in PowerShell v3 on Windows 8 and Windows Server 2012 than it is in v2 — thanks to the new
Resolve-DnsName command. Following along the same lines as the previous post, and using the exact same example hosts, we can show the same correlations and results for comparison.
We’ll start off with a request similar to our first
nslookup in the previous post, but this time using the
And as before, the same holds true with out multi-valued results:
On its face, the results are very similar to
nslookup results. However, since we’re dealing with objects here instead of scraped screen executable output, we can actually manage our results very neatly. Here’s what I mean, as I enclose the object, and only request the “.
IpAddress” from it for my two example hosts:
See how neat, clean, and powerful that is? This same thing works with other object elements, like “
.NameHost“, and such. By the way, I’ve seen some advice posts out on the ‘Net that advise you to use an increment indicator like this:
…but that will cause you to only get the first result returned! And sometimes, that may be what you’re after; but in the case of the multivalued host, that’s probably not what you want.
Now, to contrast last week’s post, I’ll show you how we take the 12-line PowerShell v2 script down to a 3-line PowerShell v3 script:$ARecord = "labdc1.lab.local" $NameServerQueried = "192.168.6.4" (Resolve-DnsName -Name $ARecord -Type A -Server $NameServerQueried -ErrorAction SilentlyContinue).IpAddress
…But of course, it’s only 3 lines because 2 of them are variables; but it’s a fully functional equivalent. And you can start to see how efficient it can be when looped. And for the sake of completion of the comparison, here’s the results of my v3 script with the “fakehost” multi-valued host:
…and with the original “labdc1”:
So there you have it. We love the new commands in PowerShell v3, and they are making our lives soooo much easier (once you know about them). Now, I’m just waiting for the commands I’ve been asking for… Like