Im Beispiel handelt es sich um einen DNS-Server. Der neue Server hat nun aber eine neue feste IP-Adresse - Warum ist hier egal, es ist eben so.
Nun müssen wir an allen Clients den Eintrag der DNS-Server anpassen. Gut das es die PowerShell gibt!
Natürlich kann die Shell nur Einträge auf Rechnern anpassen, die aktuell im Netzwerk zu erreichen sind.
Hier hab ich Script Nr. 1 für euch:
Code: Alles auswählen
$Computer = Get-ADComputer -filter {"Name - like 'A*'"} | select Name | sort Name
$Computer | %{Invoke-Command -ComputerName $_.Name -ScriptBlock {
$Adapter = Get-WmiObject Win32_NetworkAdapterConfiguration | WHERE IPAddress -LIKE 192.168.1.*
$Array = @("192.168.1.10", "192.168.1.11")
$Adapter.SetDNSServerSearchOrder($Array)
} -AsJob -JobName DNSUpdate}Das Script 2 funktioniert auch mit älteren Rechnern (XP zum Beispiel):
Code: Alles auswählen
$XPSysteme = Get-ADComputer -Filter "Name -LIKE 'A*'" | sort Name
foreach($XPSystem in $XPSysteme){
Invoke-Command -ComputerName $XPSystem.Name -ScriptBlock{netsh interface ip show config} #Anzeige aktuelle Config
Invoke-Command -ComputerName $XPSystem.Name -ScriptBlock{netsh interface ip set dns "LAN-Verbindung" static 192.168.1.10} #Setzen primärer DNS-Server
Invoke-Command -ComputerName $XPSystem.Name -ScriptBlock{netsh interface ip add dns "LAN-Verbindung" 192.168.1.11} #Setzen 1. secundärer DNS-Server
Invoke-Command -ComputerName $XPSystem.Name -ScriptBlock{netsh interface ip delete wins "LAN-Verbindung" all} #Löschen des WINS-Servers
Invoke-Command -ComputerName $XPSystem.Name -ScriptBlock{netsh interface ip show config} #Anzeige aktuelle Config zur Kontrolle
}Dieses Script läuft deutlich länger, da es die Befehle einzeln abarbeitet, die Ausgabe entsprechend anzeigt und nicht als Job an die Clients übergeben wurde.
Hoffe ich konnte mit diesen Scripts weiterhelfen und zum anpassen an ähnliche Aufgaben anregen.