DNS Konfiguration aller Active Directory Directory Services (AD DS) Computer ändern

eingetragen in: Core, Powershell, Windows | 0

Die Aufgabe hier war letztlich verhältnismäßig simpel:

Ändere (ersetze) die bisherige DNS Server Konfiguration aller VMs einer Umgebung in vorgegebene neue DNS Server.

Eine tolle Aufgabe für ein kleines PowerShell-Skript (oder einen Praktikanten 🙂 ) dachte ich mir und schrieb das folgende PS Script zusammen:
(inline Kommentare sollten zur Erläuterung ausreichend sein)

Clear-Host
# AD Computer Suchkriterien definieren, damit nicht alle geändert werden, nach Bedarf anzupassen
# Get—ADComputer -FiIter {OperatingSystem —Like ‚*Server*‘ -and Name -like „VM*“‚} select —Expand DNSHostName
$ServerVMs = Get—ADComputer -Filter {OperatingSystem —Like ‚*Server*‘ -and Name -like ‚VM*‘} | select —Expand DNSHostName

# neue DNS Server in Array SDNS schreiben
# weitere DNS Server durch weitere +=  Zeilen hinzufügen falls nötig!

$DNS =@()
$DNS += „DNS-Server1-IP-Adresse“
$DNS += „DNS-Server2-IP-Adresse“

ForEach ($ServerVM in $ServerVMs)
{
Write-Host Alle NICs in $ServerVM abfragen
Get-WmiObject Win32_NetworkAdapterCOnfiguration -ComputerName $ServerVM | where{$_.IPEnabled -eq $true -and $_.DHCPEnabled -eq $false}
$NICs = Get-WmiObject Win32_NetworkAdapterCOnfiguration -ComputerName $ServerVM | where{$_.IPEnabled -eq $true -and $_.DHCPEnabled -eq $false}

Write-Host DNS Servereinträge in allen NICs von $ServerVM ändern

ForEach ($NIC in $NICs)
{
Write-Host Bisherige DNS Server:
$NIC.DNSServerSearchOrder

# neue DNS Server in Netzwerkkarten Konfiguration eintragen
$NIC.SetDNSServerSearchorder($DNS)
}
}