Skip to content

Instantly share code, notes, and snippets.

@RobBiddle
Last active March 26, 2018 16:11
Show Gist options
  • Save RobBiddle/049f1c13bd5f1730fb5412703b7e8153 to your computer and use it in GitHub Desktop.
Save RobBiddle/049f1c13bd5f1730fb5412703b7e8153 to your computer and use it in GitHub Desktop.
DSC Script Resource to set DNS Client Servers on any active IPv4 Interface
# This Script Resource is required because not all EC2 Instance types end up with "Ethernet" as the primary adapter, some are "Ethernet 2" etc
Script SetDnsClientServers {
TestScript = {
$CurrentdnsServers = (Get-NetAdapter | Where-Object Status -eq "Up").InterfaceIndex | ForEach-Object {
(Get-DnsClientServerAddress -InterfaceIndex $_ | Where-Object AddressFamily -eq 2).ServerAddresses
# AddressFamily is type UINT16, IPv4 equals 2
}
if($CurrentdnsServers.count -lt 2){Return $false}
if(($CurrentdnsServers -like $using:DnsServer1) -and ($CurrentdnsServers -like $using:DnsServer2)) {
Return $true
}Else {
Return $false
}
}
SetScript = {
(Get-NetAdapter | Where-Object Status -eq "Up").InterfaceIndex | ForEach-Object {
Get-DnsClientServerAddress -InterfaceIndex $_ | Where-Object AddressFamily -eq 2 | Set-DnsClientServerAddress -ServerAddresses $using:DnsServer1,$using:DnsServer2
}
}
GetScript = {
@{ Result = (Get-NetAdapter | Where-Object Status -eq "Up").InterfaceIndex | ForEach-Object {(Get-DnsClientServerAddress -InterfaceIndex $_ | Where-Object AddressFamily -eq 2).ServerAddresses} }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment