Last active
March 26, 2018 16:11
-
-
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 file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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