{"id":4356,"date":"2013-01-08T00:01:00","date_gmt":"2013-01-08T00:01:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2013\/01\/08\/replace-nslookup-with-a-built-in-windows-8-powershell-function\/"},"modified":"2013-01-08T00:01:00","modified_gmt":"2013-01-08T00:01:00","slug":"replace-nslookup-with-a-built-in-windows-8-powershell-function","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/scripting\/replace-nslookup-with-a-built-in-windows-8-powershell-function\/","title":{"rendered":"Replace NSLookup with a Built-in Windows 8 PowerShell Function"},"content":{"rendered":"<p><strong>Summary:<\/strong> Microsoft Scripting Guy, Ed Wilson, continues his discussion about using Windows PowerShell on Windows&nbsp;8 to troubleshoot DNS issues.\nMicrosoft Scripting Guy, Ed Wilson, is here. Yesterday, I talked about <a href=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/archive\/2013\/01\/07\/use-powershell-to-troubleshoot-client-dns.aspx\" target=\"_blank\">using some of the functions from the DNSClient module to troubleshoot networking issues<\/a>. Specifically, I talked about looking at the configured DNS server and at the DNS client cache.\nToday, I want to continue that discussion by examining a couple of more functions.<\/p>\n<h2>Resolving DNS names<\/h2>\n<p>To make a connection, I need to resolve a DNS host name to an IP address. Actually, I do not need to do this; my computer needs to do this. But if the name does not resolve correctly, then my applications do not work. Often, when traveling, a quick call to the Help desk turns into a very long and frustrating call to the Help desk, which in turn becomes the Helpless desk. Dude!\nTherefore, I need to do all the troubleshooting on my own, so I can tell the Help desk what they need to do in order to resolve my problem. An intermediate troubleshooting step is to use the old-fashioned NSLookup utility. A long time ago, I used to have a dedicated NSLookup GUI utility. But that was a long time ago. When I moved into consulting and began working on different systems, I decided I needed to learn how to use the Windows NSLookup command-line utility&mdash;because it was the only tool I could be confident would be available. Unfortunately, the old-fashioned Windows NSLookup command-line utility is not all that much fun to use.<\/p>\n<h2>The PowerShell &ldquo;NSLookup&rdquo; tool<\/h2>\n<p>Luckily, I no longer have to use the old-fashioned command-line NSLookup tool because Windows&nbsp;8, Windows Server&nbsp;2012, and even the Microsoft Surface have the DNSClient module built-in. This module supplies the <strong>Resolve-DNSName<\/strong>. This function works great (despite the fact that some in the community believe it should have been named <strong>Get-DNSName<\/strong>).\nIn its most basic form, I simply type the host to resolve as an argument for <strong>Resolve-DNSName<\/strong>. This technique is shown here.<\/p>\n<p style=\"padding-left: 30px\">Resolve-DnsName www.scriptingguys.com<\/p>\n<p style=\"padding-left: 30px\">The command and its associated output is shown here.<\/p>\n<p style=\"padding-left: 30px\">14:28 C:&gt; Resolve-DnsName www.scriptingguys.com<\/p>\n<p style=\"padding-left: 30px\">&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type&nbsp;&nbsp; TTL&nbsp;&nbsp; Section&nbsp;&nbsp;&nbsp; NameHost<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;-&nbsp;&nbsp; &#8212;&nbsp;&nbsp; &#8212;&#8212;-&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">www.scriptingguys.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CNAME&nbsp; 3600&nbsp; Answer&nbsp;&nbsp;&nbsp;&nbsp; scriptingguys.com<\/p>\n<p style=\"padding-left: 30px\">&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : scriptingguys.com<\/p>\n<p style=\"padding-left: 30px\">QueryType&nbsp; : A<\/p>\n<p style=\"padding-left: 30px\">TTL&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;: 3600<\/p>\n<p style=\"padding-left: 30px\">Section&nbsp;&nbsp;&nbsp; : Answer<\/p>\n<p style=\"padding-left: 30px\">IP4Address : 64.4.11.37<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : scriptingguys.com<\/p>\n<p style=\"padding-left: 30px\">QueryType&nbsp; : A<\/p>\n<p style=\"padding-left: 30px\">TTL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 3600<\/p>\n<p style=\"padding-left: 30px\">Section&nbsp;&nbsp;&nbsp; : Answer<\/p>\n<p style=\"padding-left: 30px\">IP4Address : 65.55.58.201\n&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : scriptingguys.com<\/p>\n<p style=\"padding-left: 30px\">QueryType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : SOA<\/p>\n<p style=\"padding-left: 30px\">TTL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 3600<\/p>\n<p style=\"padding-left: 30px\">Section&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Authority<\/p>\n<p style=\"padding-left: 30px\">NameAdministrator&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : msnhst.microsoft.com<\/p>\n<p style=\"padding-left: 30px\">SerialNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 2012050301<\/p>\n<p style=\"padding-left: 30px\">TimeToZoneRefresh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 1800<\/p>\n<p style=\"padding-left: 30px\">TimeToZoneFailureRetry : 900<\/p>\n<p style=\"padding-left: 30px\">TimeToExpiration&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 2419200<\/p>\n<p style=\"padding-left: 30px\">DefaultTTL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 3600<\/p>\n<p style=\"padding-left: 30px\">&nbsp;\nThe thing that is a bit interesting here is that there are three different object returned by this query. The objects are shown here.<\/p>\n<p style=\"padding-left: 30px\">14:30 C:&gt; Resolve-DnsName www.scriptingguys.com | gm -MemberType Properties | select<\/p>\n<p style=\"padding-left: 30px\">&nbsp;typename -Unique<\/p>\n<p style=\"padding-left: 30px\">&nbsp;TypeName<\/p>\n<p style=\"padding-left: 30px\">&#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">Microsoft.DnsClient.Commands.DnsRecord_PTR<\/p>\n<p style=\"padding-left: 30px\">Microsoft.DnsClient.Commands.DnsRecord_A<\/p>\n<p style=\"padding-left: 30px\">Microsoft.DnsClient.Commands.DnsRecord_SOA\n&nbsp;\nIf I am interested in a specific record type, I query it directly by specifying the <strong>type<\/strong><em> <\/em>parameter, as shown here.<\/p>\n<p style=\"padding-left: 30px\">14:34 C:&gt; Resolve-DnsName www.scriptingguys.com -Type ptr<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type&nbsp;&nbsp; TTL&nbsp;&nbsp; Section&nbsp;&nbsp;&nbsp; NameHost<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;-&nbsp;&nbsp; &#8212;&nbsp;&nbsp; &#8212;&#8212;-&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">www.scriptingguys.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CNAME&nbsp; 3251&nbsp; Answer&nbsp;&nbsp;&nbsp;&nbsp; scriptingguys.com<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : scriptingguys.com<\/p>\n<p style=\"padding-left: 30px\">QueryType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : SOA<\/p>\n<p style=\"padding-left: 30px\">TTL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 3251<\/p>\n<p style=\"padding-left: 30px\">Section&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Authority<\/p>\n<p style=\"padding-left: 30px\">NameAdministrator&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : msnhst.microsoft.com<\/p>\n<p style=\"padding-left: 30px\">SerialNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 2012050301<\/p>\n<p style=\"padding-left: 30px\">TimeToZoneRefresh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 1800<\/p>\n<p style=\"padding-left: 30px\">TimeToZoneFailureRetry : 900<\/p>\n<p style=\"padding-left: 30px\">TimeToExpiration&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 2419200<\/p>\n<p style=\"padding-left: 30px\">DefaultTTL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 3600\n&nbsp;Unfortunately, the <strong>type<\/strong><em> <\/em>parameter does not accept multiple types. It does not generate an error, but it leads to unpredictable results. If I need to examine multiple record types I type the record types as an array and send them down the pipeline through the <strong>Foreach-Object<\/strong> cmdlet. This technique is shown here.<\/p>\n<p style=\"padding-left: 30px\">&#8220;ptr&#8221;, &#8220;a&#8221; | % {Resolve-DnsName -Name www.scriptingguys.com -Type $_}\n&nbsp;I can use the same technique to look up multiple DNS names. This technique appears here where I return only the CNAME records for www.microsoft.com and ftp.microsoft.com.<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&#8220;www.microsoft.com&#8221;, &#8220;ftp.microsoft.com&#8221; | % {Resolve-DnsName $_ -type cname}\n&nbsp;If I want to check the DNS Cache for a specific record, I can query it directly by using the <strong>Resolve-DNSName<\/strong> function. If a record does not exist in cache (perhaps it timed out), an error returns, as shown here.<\/p>\n<p style=\"padding-left: 30px\">14:41 C:&gt; Resolve-DnsName ftp.microsoft.com -CacheOnly<\/p>\n<p style=\"padding-left: 30px\">Resolve-DnsName : ftp.microsoft.com : DNS record does not exist<\/p>\n<p style=\"padding-left: 30px\">At line:1 char:1<\/p>\n<p style=\"padding-left: 30px\">+ Resolve-DnsName ftp.microsoft.com -CacheOnly<\/p>\n<p style=\"padding-left: 30px\">+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&nbsp;&nbsp; + CategoryInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ResourceUnavailable: (ftp.microsoft.com:String) [Reso<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&nbsp; lve-DnsName], Win32Exception<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&nbsp;&nbsp; + FullyQualifiedErrorId : RECORD_DOES_NOT_EXIST,Microsoft.DnsClient.Commands.Re<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&nbsp; solveDnsName\n&nbsp;To see what my DNS server returns, I can query it directly. To do this, I have several options. For example, I can simply specify that I want to use the DNS protocol, as shown here.<\/p>\n<p style=\"padding-left: 30px\">Resolve-DnsName ftp.microsoft.com &ndash;DnsOnly\nIf, on the other hand, the problem appears to be intermittent DNS resolution, I may want to specify a specific DNS server. First, I probably need to see how my currently configured DNS servers are set. I use the <strong>Get-DNSClientServerAddress<\/strong> function, as shown here.<\/p>\n<p style=\"padding-left: 30px\">14:45 C:&gt; Get-DnsClientServerAddress<\/p>\n<p style=\"padding-left: 30px\">InterfaceAlias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Interface Address ServerAddresses<\/p>\n<p style=\"padding-left: 30px\">&#8212;&#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212; &#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p style=\"padding-left: 30px\">Local Area Connection* 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33 IPv4&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">Local Area Connection* 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33 IPv6&nbsp;&nbsp;&nbsp; {fec0:0:0:ffff::1, fec0:0:0:ffff::&#8230;<\/p>\n<p style=\"padding-left: 30px\">vEthernet (WirelessSwitch)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31 IPv4&nbsp;&nbsp;&nbsp; {192.168.6.1, 64.134.255.2, 64.134&#8230;<\/p>\n<p style=\"padding-left: 30px\">vEthernet (WirelessSwitch)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31 IPv6&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">isatap.owv.atl.wayport.net&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 44 IPv4&nbsp;&nbsp;&nbsp; {192.168.6.1, 64.134.255.2, 64.134&#8230;<\/p>\n<p style=\"padding-left: 30px\">isatap.owv.atl.wayport.net&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 44 IPv6&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">Local Area Connection* 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25 IPv4&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">Local Area Connection* 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25 IPv6&nbsp;&nbsp;&nbsp; {fec0:0:0:ffff::1, fec0:0:0:ffff::&#8230;<\/p>\n<p style=\"padding-left: 30px\">vEthernet (InternalSwitch)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19 IPv4&nbsp;&nbsp;&nbsp; {192.168.3.100}<\/p>\n<p style=\"padding-left: 30px\">vEthernet (InternalSwitch)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19 IPv6&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">isatap.{FC2087E9-6988-45E&#8230;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40 IPv4&nbsp;&nbsp;&nbsp; {192.168.3.100}<\/p>\n<p style=\"padding-left: 30px\">isatap.{FC2087E9-6988-45E&#8230;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40 IPv6&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">Loopback Pseudo-Interface 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 IPv4&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">Loopback Pseudo-Interface 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 IPv6&nbsp;&nbsp;&nbsp; {fec0:0:0:ffff::1, fec0:0:0:ffff::&#8230;<\/p>\n<p style=\"padding-left: 30px\">Teredo Tunneling Pseudo-I&#8230;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34 IPv4&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">Teredo Tunneling Pseudo-I&#8230;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34 IPv6&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">6TO4 Adapter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 39 IPv4&nbsp;&nbsp;&nbsp; {}<\/p>\n<p style=\"padding-left: 30px\">6TO4 Adapter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 39 IPv6&nbsp;&nbsp;&nbsp; {}\nI can easily clean up the output by filtering only the entries that contain server addresses. This is shown here.<\/p>\n<p style=\"padding-left: 30px\">14:46 C:&gt; Get-DnsClientServerAddress | ? serveraddresses<\/p>\n<p style=\"padding-left: 30px\">InterfaceAlias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Interface Address ServerAddresses<\/p>\n<p style=\"padding-left: 30px\">&#8212;&#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212; &#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p style=\"padding-left: 30px\">Local Area Connection* 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;33 IPv6&nbsp;&nbsp;&nbsp; {fec0:0:0:ffff::1, fec0:0:0:ffff::&#8230;<\/p>\n<p style=\"padding-left: 30px\">vEthernet (WirelessSwitch)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31 IPv4&nbsp;&nbsp;&nbsp; {192.168.6.1, 64.134.255.2, 64.134&#8230;<\/p>\n<p style=\"padding-left: 30px\">isatap.owv.atl.wayport.net&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 44 IPv4&nbsp;&nbsp;&nbsp; {192.168.6.1, 64.134.255.2, 64.134&#8230;<\/p>\n<p style=\"padding-left: 30px\">Local Area Connection* 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25 IPv6&nbsp;&nbsp;&nbsp; {fec0:0:0:ffff::1, fec0:0:0:ffff::&#8230;<\/p>\n<p style=\"padding-left: 30px\">vEthernet (InternalSwitch)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19 IPv4&nbsp;&nbsp;&nbsp; {192.168.3.100}<\/p>\n<p style=\"padding-left: 30px\">isatap.{FC2087E9-6988-45E&#8230;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40 IPv4&nbsp;&nbsp;&nbsp; {192.168.3.100}<\/p>\n<p style=\"padding-left: 30px\">Loopback Pseudo-Interface 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 IPv6&nbsp;&nbsp;&nbsp; {fec0:0:0:ffff::1, fec0:0:0:ffff::&#8230;\nAfter I have my listing of DNS servers, I can check them one at a time. I do this by specifying the <strong>DnsServer<\/strong> parameter and specifying that I want to use DNS, as shown here.<\/p>\n<p style=\"padding-left: 30px\">Resolve-DnsName www.msn.com -DnsOnly -Server 192.168.6.1\nI do not have to specify an IP address for the DNS Server. For example, I can query the DNS server by host name. This technique is shown here.<\/p>\n<p style=\"padding-left: 30px\">Resolve-DnsName www.msn.com -Server ns1.msft.net\nIf I determine I have a polluted DNS cache, I use Windows PowerShell to clear the cache. The command is shown here.<\/p>\n<p style=\"padding-left: 30px\">Clear-DnsClientCache\nJoin me tomorrow when I will have the third article of Microsoft MVP Richard Siddaway&rsquo;s Windows PowerShell workflow basics series. You can review the <a href=\"http:\/\/blogs.technet.comhttps:\/\/devblogs.microsoft.com\/scripting\/powershell-workflows-restrictions\/\" target=\"_blank\">second<\/a> and the <a href=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/archive\/2012\/12\/26\/powershell-workflows-the-basics.aspx\" target=\"_blank\">first<\/a> articles in that series on the Hey, Scripting Guy! Blog post.\nI invite you to follow me on <a href=\"http:\/\/bit.ly\/scriptingguystwitter\" target=\"_blank\">Twitter<\/a> and <a href=\"http:\/\/bit.ly\/scriptingguysfacebook\" target=\"_blank\">Facebook<\/a>. If you have any questions, send email to me at <a href=\"http:\/\/blogs.technet.commailto:scripter@microsoft.com\" target=\"_blank\">scripter@microsoft.com<\/a>, or post your questions on the <a href=\"http:\/\/bit.ly\/scriptingforum\" target=\"_blank\">Official Scripting Guys Forum<\/a>. See you tomorrow. Until then, peace.\n<strong>Ed Wilson, Microsoft Scripting Guy<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summary: Microsoft Scripting Guy, Ed Wilson, continues his discussion about using Windows PowerShell on Windows&nbsp;8 to troubleshoot DNS issues. Microsoft Scripting Guy, Ed Wilson, is here. Yesterday, I talked about using some of the functions from the DNSClient module to troubleshoot networking issues. Specifically, I talked about looking at the configured DNS server and at [&hellip;]<\/p>\n","protected":false},"author":596,"featured_media":87096,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[396,37,3,45],"class_list":["post-4356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripting","tag-dns","tag-networking","tag-scripting-guy","tag-windows-powershell"],"acf":[],"blog_post_summary":"<p>Summary: Microsoft Scripting Guy, Ed Wilson, continues his discussion about using Windows PowerShell on Windows&nbsp;8 to troubleshoot DNS issues. Microsoft Scripting Guy, Ed Wilson, is here. Yesterday, I talked about using some of the functions from the DNSClient module to troubleshoot networking issues. Specifically, I talked about looking at the configured DNS server and at [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/4356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/users\/596"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/comments?post=4356"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/4356\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/media\/87096"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/media?parent=4356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/categories?post=4356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/tags?post=4356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}