DHCP-Reservierungen mit PowerShell und CSV-Datei erstellen


    Tags: ,

    DHCP-TopologieWenn man viele DHCP-Reser­vierungen an­legen muss, dann ist das Han­tieren mit dem MMC-Snapin zu um­ständ­lich. Alter­nativ bietet sich ein Bulk-Upload aus einer CSV-Datei mit Power­Shell an, um den Vor­gang zu automatisieren. Dabei lassen sich auch Werte für Optionen setzen.

    DHCP-Reservierungen eignen sich besonders für das Management von Servern, um die Verwendung von festen IP-Adressen zu vermeiden. Dabei ist es häufig üblich, die Reservierung in die DHCP-Datenbank schon einzutragen, bevor man das Betriebssystem installiert. Anschließend lässt der Rechner über PXE booten und er erhält dann über DHCP das korrekte Start-Image zugewiesen. Auf diese Weise kann man auch den Hostnamen automatisch zuteilen.

    Passende CSV-Datei vorbereiten

    Das massenhafte Erzeugen von DHCP-Reservierungen via PowerShell bedarf mehrerer Schritte. Zuerst stellt man eine CSV-Datei zusammen, die alle erforderlichen Informationen enthält. Dazu zählen der Bereich ("Scope"), in dem die jeweilige Reservierung entstehen soll, ihr Name und die MAC-Adresse des Clients.

    Nachdem die Datensätze aus der CSV-Datei mit Import-Csv eingelesen und über eine Pipe an Add-DhcpServerv4Reservation übergeben werden, müssen die Feldbezeichner genau mit den Namen der Parameter übereinstimmen, die das Cmdlet akzeptiert. Zum Beispiel heißt dann die Spalte mit den MAC-Adressen ClientId oder der Bereich ScopeId (wobei wie bei PowerShell üblich die Groß- und Kleinschreibung keine Rolle spielt).

    Freie IP-Adressen finden

    Natürlich könnte man auch die IP-Adressen für jeden Eintrag schon in der CSV-Datei hinterlegen und auf die gleiche Weise an Add-DhcpServerv4Reservation weitergeben wie die anderen Informationen. In diesem Fall müsste man die freien Adressen aber selbst aus der Liste der Leases heraussuchen und damit rechnen, dass einige davon schon ein paar Minuten später vergeben sind.

    Aus diesem Grund empfiehlt es sich, eine freie IP-Adresse jeweils unmittelbar vor dem Anlegen der Reservierung abzurufen. Diese lässt sich mit Hilfe von Get-DhcpServerv4FreeIPAddress ermitteln und an Add-DhcpServerv4Reservation mit dem Parameter IPAddress übergeben.

    Optionen bearbeiten

    Schließlich möchte man in die DHCP-Reservierung unter Umständen bestimmte Werte für einige der Optionen eintragen. Dazu zählen etwa der Hostname, die Domäne oder der Name des Servers für einen PXE-Boot. Die Optionen lassen sich nicht beim Hinzufügen via PowerShell ändern, vielmehr muss man zu diesem Zweck Set-DhcpServerv4OptionValue nach dem Anlegen der Reservierung aufrufen.

    Liste der Optionen für DHCP-Reservierungen im MMC-Snapin.

    Die Optionen sind nummeriert, die entsprechenden Werte kann man dem MMC-Snapin für das DHCP-Management entnehmen. Der Beispiel-Code in diesem Beitrag entnimmt die Optionen 66 (Hostname des Startservers) und 67 (Name der Startdatei) aus der CSV-Datei, deren Inhalt über die Pipe auch an den Aufruf von Set-DhcpServerv4OptionValue gelangt.

    Die function bulkDHCPReservations erwartet als einzigen Parameter den Namen des DHCP-Servers, auf dem die Reservierungen eingetragen werden sollen.

    Keine Kommentare