Get-DNS Cmdlet
Parameters Output Objects Config Settings
The Get-DNS component is used to query a DNS server for records.
Syntax
Get-DNS [parameters]
Remarks
The cmdlet will attempt to obtain DNS records for the domain specified in Domain for records of the type QueryType. The cmdlet will attempt to use the default DNS settings for the system, but the DNS server and port may be explicitly set as DNSServer and Port.
The cmdlets support pipeline input for some of their parameters. Prebuilding an object and piping it to the cmdlet is very useful, but should be used with caution to prevent security conflicts. Steps have been taken to decrease the risk of a possibly accidental pipe to the cmdlet, for instance, the Credential parameter cannot be piped to the cmdlet and must be specified manually.
Example
# using default DNS and query type (address)
get-dns -domain nsoftware.com
# specifying DNS and record type
get-dns -dnsserver 10.0.1.1 -port 53 -domain microsoft.com -querytype NS
Parameter List
The following is the full list of the parameters of the cmdlet with short descriptions. Click on the links for further details.
LogFile | The location of a file to which debug information is written. |
Config | Specifies one or more configuration settings. |
DNSServer | The address of the DNS Server to use. |
Domain | The domain to query. |
LocalIP | The IP address of the local interface to use. |
LogFile | The location of a file to which debug information is written. |
Port | The TCP port in the remote host to which to connect. |
QueryType | The record type to query. |
RecordSource | The source of records provided in the DnsEntry output. |
Recursive | Determines whether to ask the DNSServer to recursively query other servers. |
Timeout | The maximum time allowed for the operation. |
Output Objects
The following is the full list of the output objects returned by the cmdlet with short descriptions. Click on the links for further details.
DnsEntry | This object is created after a DNS record has been returned. |
Config Settings
The following is a list of config settings for the cmdlet with short descriptions. Click on the links for further details.
DoHMethod | Specifies the DNS over HTTPS method. |
ResponseTruncated | Whether the response is truncated. |
UseDNSAPIDLL | Whether to use the system dnsapi.dll on Windows Systems. |
UseIDNs | Whether to encode hostnames to internationalized domain names. |
CaptureIPPacketInfo | Used to capture the packet information. |
DelayHostResolution | Whether the hostname is resolved when RemoteHost is set. |
DestinationAddress | Used to get the destination address from the packet information. |
DontFragment | Used to set the Don't Fragment flag of outgoing packets. |
LocalHost | The name of the local host through which connections are initiated or accepted. |
LocalPort | The port in the local host where the component binds. |
MaxPacketSize | The maximum length of the packets that can be received. |
QOSDSCPValue | Used to specify an arbitrary QOS/DSCP setting (optional). |
QOSTrafficType | Used to specify QOS/DSCP settings (optional). |
ShareLocalPort | If set to True, allows more than one instance of the component to be active on the same local port. |
UseConnection | Determines whether to use a connected socket. |
UseIPv6 | Whether or not to use IPv6. |
AbsoluteTimeout | Determines whether timeouts are inactivity timeouts or absolute timeouts. |
FirewallData | Used to send extra data to the firewall. |
InBufferSize | The size in bytes of the incoming queue of the socket. |
OutBufferSize | The size in bytes of the outgoing queue of the socket. |
BuildInfo | Information about the product's build. |
CodePage | The system code page used for Unicode to Multibyte translations. |
LicenseInfo | Information about the current license. |
MaskSensitive | Whether sensitive data is masked in log messages. |
UseInternalSecurityAPI | Whether or not to use the system security libraries or an internal implementation. |
LogFile Parameter (Get-DNS Cmdlet)
The location of a file to which debug information is written.
Syntax
Get-DNS -LogFile string
Remarks
When specified, the cmdlet will log debug information to the file. If the file exists, the information will be appended.Default Value
null
Config Property (Get-DNS Cmdlet)
Specifies one or more configuration settings.
Syntax
Get-DNS -Config string[]
Remarks
The Config parameter takes one or more name-value pairs that represent the name of the configuration setting and value, i.e.: -config "Name=Value"
Default Value
null
DNSServer Property (Get-DNS Cmdlet)
The address of the DNS Server to use.
Syntax
Get-DNS -DNSServer string
Remarks
The cmdlet will try to figure out the default dns server of the interface that it encounters. You may provide one to override this behavior.
Default Value
""
Parameter Alias
Server
Domain Property (Get-DNS Cmdlet)
The domain to query.
Syntax
Get-DNS -Domain string
Remarks
The cmdlet will query the host in DNSServer for any records of type QueryType.
Default Value
""
Parameter Position
0
Parameter Alias
QueryDomain
This is a required parameter.
LocalIP Property (Get-DNS Cmdlet)
The IP address of the local interface to use.
Syntax
Get-DNS -LocalIP string
Remarks
This parameter is useful when the cmdlet is running on a machine that has more than one network interface (each with its own IP address and network access privileges).
Default Value
""
Parameter Alias
LocalAddress
LogFile Property (Get-DNS Cmdlet)
The location of a file to which debug information is written.
Syntax
Get-DNS -LogFile string
Remarks
When specified, the cmdlet will log debug information to the file. If the file exists, the information will be appended.
Default Value
""
Port Property (Get-DNS Cmdlet)
The TCP port in the remote host to which to connect.
Syntax
Get-DNS -Port int
Remarks
Port specifies a service port on the remote host to which to connect.
A valid port number (a value between 1 and 65535) is required for the connection to take place.
Default Value
53
QueryType Property (Get-DNS Cmdlet)
The record type to query.
Syntax
Get-DNS -QueryType string
Remarks
Before a query is attempted, QueryType must be set to the desired record type. The records are defined as follows:
A | Address Records |
NS | Name Server Records |
MD | Mail Destination Records |
MF | Mail Forwarder Records |
CName | Canonical Name Records |
SOA | Start Of Authority Records |
MailBox | MailBox Records |
MailGroup | Mail Group Records |
MR | MailBox Rename Records |
NULL | NULL Records |
WKS | Well Known Services Records |
Ptr | Pointer Records |
HInfo | Host Information Records |
MailInfo | Mail Information Records |
MX | Mail Exchange Records |
Text | Text Records |
RP | Responsible Person Records |
AFSDB | Service Records |
X25 | X25 Records |
ISDN | ISDN Records |
RT | Route Through Records |
AAAA | AAAA Record |
SRV | SRV Record (location of services) |
Rev | Reverse Lookup |
Default Value
1
Parameter Position
1
Parameter Alias
type
RecordSource Property (Get-DNS Cmdlet)
The source of records provided in the DnsEntry output.
Syntax
Get-DNS -RecordSource string
Remarks
RecordSource can have one of the following values:
Answer | Records answering the question/query. |
NameServer | Records pointing toward an authoritative name server. |
AdditionalRecords | Records holding additional information. |
Default Value
0
Parameter Alias
Source
Recursive Property (Get-DNS Cmdlet)
Determines whether to ask the DNSServer to recursively query other servers.
Syntax
Get-DNS -Recursive SwitchParameter
Remarks
If Recursive is true, the cmdlet will tell the DNS server to perform the query recursively. This means that if the DNS server does not have information about the domain being queried, it will send the request to another DNS server.
Default Value
true
Timeout Property (Get-DNS Cmdlet)
The maximum time allowed for the operation.
Syntax
Get-DNS -Timeout int
Remarks
After the specified interval in seconds, the cmdlet will throw a Timeout error if the operation is not completed.
Default Value
10
DnsEntry Output Object (Get-DNS Cmdlet)
This object is created after a DNS record has been returned.
Syntax
Object DnsEntry {string Type;
string[] Fields;
string[] Values;
string Domain;
int TTL;
string RecordSource;
bool Success;
string ProtocolLog;
}
Remarks
Once the query is complete, one DnsEntry object will be created for each answer returned, and the following properties will contain the results:
Type | The type of the record being listed. |
Fields* | An array of field names for each record. |
Values | An array of field values for each record. |
Domain | An array of domains for each record. |
TTL | An array of TTL's for each record. TTL specifies the time interval, in seconds, for which the record is valid or the time interval that the record can be cached before the DNS server should be queried again. |
Success | If the operation completed successfully this will be True. In the case of an error this will be False. |
ProtocolLog | If the configuration setting "DNSProtocolLog" is set to "True" this will hold a 'nslookup' style log. The log will be the same in each DnsEntry object. |
Field names are different depending on the record type. For example, an MX record type will contain two fields: PREFERENCE and EXCHANGE, but an SOA record type contains seven fields.
A Records | ADDRESS |
NS Records | DNAME |
MD | MADNAME |
MF | MADNAME |
CNAME | CNAME |
SOA | MNAME |
SOA | RNAME |
SOA | SERIAL |
SOA | REFRESH |
SOA | RETRY |
SOA | EXPIRE |
SOA | MINIMUM |
MB | MADNAME |
MG | MGMNAME |
MR | NEWNAME |
NULL | NULL |
WKS | ADDRESS |
WKS | PROTOCOL |
WKS | SERVICEMAP |
PTR | PTRDNAME |
HINFO | CPU |
HINFO | OS |
MINFO | RMAILBX |
MINFO | EMAILBX |
MX | PREFERENCE |
MX | EXCHANGE |
TXT | TXT |
RP | MBOXDNAME |
RP | TXTDNAME |
AFSDB | SUBTYPE |
AFSDB | HOSTNAME |
X25 | PSDNADDRESS |
ISDN | ISDNADDRESS |
RT | PREFERENCE |
RT | INTERMEDIATE |
AAAA | ADDRESS |
SRV | PRIORITY |
SRV | WEIGHT |
SRV | PORT |
SRV | TARGET |
Config Settings (Get-DNS Cmdlet)
The cmdlet accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the cmdlet, access to these internal properties is provided through the Config method.DNS Config Settings
0 (default) | HTTP POST (DNS Wireformat) |
1 | HTTP GET (DNS Wireformat) |
2 | HTTP GET (JSON) |
The default value is False.
NOTE: This functionality is only available in Windows.
The default value is False and the hostname will always be used exactly as specified.
UDP Config Settings
The default value for this setting is False.
Note: This setting is only available in Windows.
The default value is false for the default library and true for the Async library. The default value is false.
Note: This setting is only available in Windows.
In multi-homed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the cmdlet initiate connections (or accept in the case of server cmdlets) only through that interface.
If the cmdlet is connected, the LocalHost setting shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multi-homed hosts (machines with more than one IP interface).
Setting this to 0 (default) enables the system to choose a port at random. The chosen port will be shown by LocalPort after the connection is established.
LocalPort cannot be changed once a connection is made. Any attempt to set this when a connection is active will generate an error.
This; setting is useful when trying to connect to services that require a trusted port in the client side. An example is the remote shell (rsh) service in UNIX systems.
Note: This setting uses the qWAVE API is only available on Windows 7, Windows Server 2008 R2, and later.
Note: This setting uses the qWAVE API which is only available on Windows Vista and Windows Server 2008 or above.
Note: QOSTrafficType must be set before setting Active to true.
The default value for this setting is False.
The default value for this setting is False.
Socket Config Settings
Note: This option is not valid for UDP ports.
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when the cmdlet is activated the InBufferSize reverts to its defined size. The same happens if you attempt to make it too large or too small.
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when the cmdlet is activated the OutBufferSize reverts to its defined size. The same happens if you attempt to make it too large or too small.
Base Config Settings
The following is a list of valid code page identifiers:
Identifier | Name |
037 | IBM EBCDIC - U.S./Canada |
437 | OEM - United States |
500 | IBM EBCDIC - International |
708 | Arabic - ASMO 708 |
709 | Arabic - ASMO 449+, BCON V4 |
710 | Arabic - Transparent Arabic |
720 | Arabic - Transparent ASMO |
737 | OEM - Greek (formerly 437G) |
775 | OEM - Baltic |
850 | OEM - Multilingual Latin I |
852 | OEM - Latin II |
855 | OEM - Cyrillic (primarily Russian) |
857 | OEM - Turkish |
858 | OEM - Multilingual Latin I + Euro symbol |
860 | OEM - Portuguese |
861 | OEM - Icelandic |
862 | OEM - Hebrew |
863 | OEM - Canadian-French |
864 | OEM - Arabic |
865 | OEM - Nordic |
866 | OEM - Russian |
869 | OEM - Modern Greek |
870 | IBM EBCDIC - Multilingual/ROECE (Latin-2) |
874 | ANSI/OEM - Thai (same as 28605, ISO 8859-15) |
875 | IBM EBCDIC - Modern Greek |
932 | ANSI/OEM - Japanese, Shift-JIS |
936 | ANSI/OEM - Simplified Chinese (PRC, Singapore) |
949 | ANSI/OEM - Korean (Unified Hangul Code) |
950 | ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC) |
1026 | IBM EBCDIC - Turkish (Latin-5) |
1047 | IBM EBCDIC - Latin 1/Open System |
1140 | IBM EBCDIC - U.S./Canada (037 + Euro symbol) |
1141 | IBM EBCDIC - Germany (20273 + Euro symbol) |
1142 | IBM EBCDIC - Denmark/Norway (20277 + Euro symbol) |
1143 | IBM EBCDIC - Finland/Sweden (20278 + Euro symbol) |
1144 | IBM EBCDIC - Italy (20280 + Euro symbol) |
1145 | IBM EBCDIC - Latin America/Spain (20284 + Euro symbol) |
1146 | IBM EBCDIC - United Kingdom (20285 + Euro symbol) |
1147 | IBM EBCDIC - France (20297 + Euro symbol) |
1148 | IBM EBCDIC - International (500 + Euro symbol) |
1149 | IBM EBCDIC - Icelandic (20871 + Euro symbol) |
1200 | Unicode UCS-2 Little-Endian (BMP of ISO 10646) |
1201 | Unicode UCS-2 Big-Endian |
1250 | ANSI - Central European |
1251 | ANSI - Cyrillic |
1252 | ANSI - Latin I |
1253 | ANSI - Greek |
1254 | ANSI - Turkish |
1255 | ANSI - Hebrew |
1256 | ANSI - Arabic |
1257 | ANSI - Baltic |
1258 | ANSI/OEM - Vietnamese |
1361 | Korean (Johab) |
10000 | MAC - Roman |
10001 | MAC - Japanese |
10002 | MAC - Traditional Chinese (Big5) |
10003 | MAC - Korean |
10004 | MAC - Arabic |
10005 | MAC - Hebrew |
10006 | MAC - Greek I |
10007 | MAC - Cyrillic |
10008 | MAC - Simplified Chinese (GB 2312) |
10010 | MAC - Romania |
10017 | MAC - Ukraine |
10021 | MAC - Thai |
10029 | MAC - Latin II |
10079 | MAC - Icelandic |
10081 | MAC - Turkish |
10082 | MAC - Croatia |
12000 | Unicode UCS-4 Little-Endian |
12001 | Unicode UCS-4 Big-Endian |
20000 | CNS - Taiwan |
20001 | TCA - Taiwan |
20002 | Eten - Taiwan |
20003 | IBM5550 - Taiwan |
20004 | TeleText - Taiwan |
20005 | Wang - Taiwan |
20105 | IA5 IRV International Alphabet No. 5 (7-bit) |
20106 | IA5 German (7-bit) |
20107 | IA5 Swedish (7-bit) |
20108 | IA5 Norwegian (7-bit) |
20127 | US-ASCII (7-bit) |
20261 | T.61 |
20269 | ISO 6937 Non-Spacing Accent |
20273 | IBM EBCDIC - Germany |
20277 | IBM EBCDIC - Denmark/Norway |
20278 | IBM EBCDIC - Finland/Sweden |
20280 | IBM EBCDIC - Italy |
20284 | IBM EBCDIC - Latin America/Spain |
20285 | IBM EBCDIC - United Kingdom |
20290 | IBM EBCDIC - Japanese Katakana Extended |
20297 | IBM EBCDIC - France |
20420 | IBM EBCDIC - Arabic |
20423 | IBM EBCDIC - Greek |
20424 | IBM EBCDIC - Hebrew |
20833 | IBM EBCDIC - Korean Extended |
20838 | IBM EBCDIC - Thai |
20866 | Russian - KOI8-R |
20871 | IBM EBCDIC - Icelandic |
20880 | IBM EBCDIC - Cyrillic (Russian) |
20905 | IBM EBCDIC - Turkish |
20924 | IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol) |
20932 | JIS X 0208-1990 & 0121-1990 |
20936 | Simplified Chinese (GB2312) |
21025 | IBM EBCDIC - Cyrillic (Serbian, Bulgarian) |
21027 | Extended Alpha Lowercase |
21866 | Ukrainian (KOI8-U) |
28591 | ISO 8859-1 Latin I |
28592 | ISO 8859-2 Central Europe |
28593 | ISO 8859-3 Latin 3 |
28594 | ISO 8859-4 Baltic |
28595 | ISO 8859-5 Cyrillic |
28596 | ISO 8859-6 Arabic |
28597 | ISO 8859-7 Greek |
28598 | ISO 8859-8 Hebrew |
28599 | ISO 8859-9 Latin 5 |
28605 | ISO 8859-15 Latin 9 |
29001 | Europa 3 |
38598 | ISO 8859-8 Hebrew |
50220 | ISO 2022 Japanese with no halfwidth Katakana |
50221 | ISO 2022 Japanese with halfwidth Katakana |
50222 | ISO 2022 Japanese JIS X 0201-1989 |
50225 | ISO 2022 Korean |
50227 | ISO 2022 Simplified Chinese |
50229 | ISO 2022 Traditional Chinese |
50930 | Japanese (Katakana) Extended |
50931 | US/Canada and Japanese |
50933 | Korean Extended and Korean |
50935 | Simplified Chinese Extended and Simplified Chinese |
50936 | Simplified Chinese |
50937 | US/Canada and Traditional Chinese |
50939 | Japanese (Latin) Extended and Japanese |
51932 | EUC - Japanese |
51936 | EUC - Simplified Chinese |
51949 | EUC - Korean |
51950 | EUC - Traditional Chinese |
52936 | HZ-GB2312 Simplified Chinese |
54936 | Windows XP: GB18030 Simplified Chinese (4 Byte) |
57002 | ISCII Devanagari |
57003 | ISCII Bengali |
57004 | ISCII Tamil |
57005 | ISCII Telugu |
57006 | ISCII Assamese |
57007 | ISCII Oriya |
57008 | ISCII Kannada |
57009 | ISCII Malayalam |
57010 | ISCII Gujarati |
57011 | ISCII Punjabi |
65000 | Unicode UTF-7 |
65001 | Unicode UTF-8 |
Identifier | Name |
1 | ASCII |
2 | NEXTSTEP |
3 | JapaneseEUC |
4 | UTF8 |
5 | ISOLatin1 |
6 | Symbol |
7 | NonLossyASCII |
8 | ShiftJIS |
9 | ISOLatin2 |
10 | Unicode |
11 | WindowsCP1251 |
12 | WindowsCP1252 |
13 | WindowsCP1253 |
14 | WindowsCP1254 |
15 | WindowsCP1250 |
21 | ISO2022JP |
30 | MacOSRoman |
10 | UTF16String |
0x90000100 | UTF16BigEndian |
0x94000100 | UTF16LittleEndian |
0x8c000100 | UTF32String |
0x98000100 | UTF32BigEndian |
0x9c000100 | UTF32LittleEndian |
65536 | Proprietary |
- Product: The product the license is for.
- Product Key: The key the license was generated from.
- License Source: Where the license was found (e.g., RuntimeLicense, License File).
- License Type: The type of license installed (e.g., Royalty Free, Single Server).
- Last Valid Build: The last valid build number for which the license will work.
This setting only works on these cmdlets: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.
Setting this configuration setting to true tells the cmdlet to use the internal implementation instead of using the system security libraries.
On Windows, this setting is set to false by default. On Linux/macOS, this setting is set to true by default.
If using the .NET Standard Library, this setting will be true on all platforms. The .NET Standard library does not support using the system security libraries.
Note: This setting is static. The value set is applicable to all cmdlets used in the application.
When this value is set, the product's system dynamic link library (DLL) is no longer required as a reference, as all unmanaged code is stored in that file.