Jump to content

DHCP Reservierungen eines Bereiches importieren


Direkt zur Lösung Gelöst von testperson,

Empfohlene Beiträge

Hallo zusammen,

 

ich muss den alten DHCP Server ablösen und alle Bereiche auf einen neuen DHCP Server umziehen.

Der alte DHCP Server ist ein Linuxsystem und dort bekomme ich von einem Kollegen eine CSV Datei als Export von den alten Bereichen die dort angelegt sind. das sind über 100 Stück.

Der neue DHCP ist ein Windows Server 2022 Core Cluster (also ohne Desktop)

Ich tu mich echt schwer damit und habe gestern den ganzen Tag rumprobiert.

Das habe ich verwendet um einen Export zu testen:

Get-DhcpServerv4Scope -ComputerName "servername.meinedomaene.lan" | Export "c:\temp\exportScopeOptions.csv" -Delimiter ";"

Fehlermeldung:

PS C:\WINDOWS\system32> C:\temp\dhcp_auslesen.ps1
Export : Die Benennung "Export" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die 
Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In C:\temp\dhcp_auslesen.ps1:1 Zeichen:63
+ ... pServerv4Scope -ComputerName "servername.meinedomaene.lan" | Export "c:\tem ...
+                                                            ~~~~~~
    + CategoryInfo          : ObjectNotFound: (Export:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

 

Ich habe die Powershell bei mir am PC als Administrator geöffnet. Dieser Benutzer hat auch Zugriff auf den DHCP Server. Über mmc kann ich mich problemlos verbinden und Konfigurationen vornehmen.

 

Zum Importieren wollte ich das hernehmen:

$dhcpserver = "servername.meinedomaene.lan"
$scopes = Import-Csv -Path "c:\temp\ScopeReservation.csv" -Delimiter ";"
foreach ($scope in $scopes)
{
    $name = $scope.name
    $description = $scope.description
Write-Output "Creating scope  $name"

Add-DhcpServerv4Reservation -ComputerName $dhcpserver -ScopeId $scope.ScopeId -IPAddress $scope.IPAddress -Description $scope.description -Name $scope.name -ClientId $scope.clientid -Type $scope.Type #-WhatIf
}

 

Es gibt doch hier bestimmt Powershell Spezis die mir sagen können was ich falsch mache oder ob es einen leichteren Weg gibt.

 

Ich möchte Bereich für Bereich umziehen. Nicht alle auf einmal. 

Auf dem neuen DHCP lege ich den Bereich analog zum Linux DHCP an und aktiviere ich den. Erst nach der Freigabe an der Firewall (Netzwerkteam) wird der neue DHCP Server für diesen Bereich angefragt.

Nun habe ich gesehen, dass auf dem Linux DHCP es Bereiche gibt wo verdammt viele Reservierungen drin sind. Zeitterminals und was weis ich was es da alles gibt. Das von Hand anzulegen ist heftig.

 

Danke für eure Unterstützung.

 

 

Link zu diesem Kommentar
vor 38 Minuten schrieb Dukel:

Export gibt es nicht.

out-file, add/set-content,...

 

Wieso willst du mit export testen und nicht mit import?

Bekommst du ein Ergebnis in der Shell mit:

Get-DhcpServerv4Scope -ComputerName "servername.meinedomaene.lan"

?

Ergebnis würde ich nicht sagen aber es kommt dass eine neue Zeile mit >> am Anfang

vor 31 Minuten schrieb testperson:

Hi,

 

wenn dir die GUI fehlt, installiere doch einen Management Client mit den (DHCP) RSAT Tools und nutze dessen GUI.

 

Gruß

Jan

Gute Idee mit der GUI. Meinst Du zufällig die DHCP Konsole? Die hätte ich beim mir am PC. Damit kann ich auch prima einen Export machen aber leider keinen Import :-(

vor 1 Minute schrieb Neopolis:

Ergebnis würde ich nicht sagen aber es kommt dass eine neue Zeile mit >> am Anfang

Gute Idee mit der GUI. Meinst Du zufällig die DHCP Konsole? Die hätte ich beim mir am PC. Damit kann ich auch prima einen Export machen aber leider keinen Import :-(

Ich wollte es mit Export testen um erstmal zu sehen wie die CSV Datei aussehen muss die mir Linux liefert. 

Link zu diesem Kommentar

Es kann doch egal sein, wie der Export aussieht.

So wie du es vor hast kannst die csv komplett andere Spalten und Reihenfolgen haben.

 

Teil deine Aufgabe in kleine häppchen.

Nimm als erstes ein Beispiel Scope mit den entsprechenden Daten und erstellen diesen per Powershell mit

Add-DhcpServerv4Scope (Achtung! in deinem Bsp hast du Reservation, und nicht Scope!, das kommt später).

 

Wenn das funktioniert nimmst du deine csv Datei und erstellst eine Schleife und lässt dir z.B. alle benötigten Felder ausgeben und ergänzt im nächsten Schritt das obere Script mit den entsprechenden Variablen.

vor 1 Minute schrieb testperson:

DHCP Export / Import habe ich einmal benötigt und meine mich zu erinnern, dass ich damals den import auch nur per "netsh" geschafft habe:

 

netsh dhcp server \\<Alter DHCP Server> export c:\DHCPdb all
netsh dhcp server \\<Neuer DHCP Server> import c:\DHCPdb all

 

 

Das hilft aber nicht bei einem Linux DHCP Server mit einer CSV Datei ;)

Link zu diesem Kommentar

Okay Jungs! Ich habe den Bereich im Windows DHCP erstellt

 Jetzt würde ich gern importieren:

$dhcpserver = "servername.meinedomaene.lan"
$scopes = Import-Csv -Path "c:\temp\reservierungen_admin_it.csv" -Delimiter ";"
foreach ($scope in $scopes)
{
    $name = $scope.name
    $description = $scope.description
Write-Output "Creating scope  $name"

Add-DhcpServerv4Reservation -ComputerName $dhcpserver -ScopeId $scope.ScopeId -IPAddress $scope.ipaddress -Description $scope.description -Name $scope.name -ClientId $scope.clientid -Type $scope.Type #-WhatIf
}

 

Meine CSV Datei hat folgenden Inhalt:

 

ScopeId;IPAddress;description;name;clientid
10.1.16.0;10.1.16.21;Workstation;pc-01;CCCCCCCCCC
10.1.16.0;10.1.16.25;AdminWorkstation;pc-02;0000000000

 

Klappt nicht :-( Fehlermeldung:

PS C:\WINDOWS\system32> C:\temp\dhcp_import.ps1
Creating scope  pc-01
Add-DhcpServerv4Reservation : Das Argument für den Parameter "Type" kann nicht überprüft werden. Das Argument "" gehört nicht zu dem vom ValidateSet-Attribut 
angegebenen Satz "Dhcp;Bootp;Both". Geben Sie ein Argument an, das in dem Satz enthalten ist, und führen Sie dann den Befehl erneut aus.
In C:\temp\dhcp_import.ps1:9 Zeichen:189
+ ... -Name $scope.name -ClientId $scope.clientid -Type $scope.Type #-WhatI ...
+                                                       ~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Add-DhcpServerv4Reservation], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Add-DhcpServerv4Reservation

 

Was mache ich denn da verkehrt? Ich vermute da ist was mit der MAC Adresse nicht richtig. Aber wie muss ich das anpassen?

 

Link zu diesem Kommentar
  • Beste Lösung

Hi,

 

in deiner CSV scheint es kein Feld "Type" zu geben, was du aber beim Import mit dem Parameter "-Type $Scope.Type" adressierst. Du könntest den Type vermutlich einfach statisch auf "DHCP" setzen in deinem Script:

Add-DhcpServerv4Reservation -ComputerName $dhcpserver `
    -ScopeId $scope.ScopeId `
    -IPAddress $scope.ipaddress `
    -Description $scope.description `
    -Name $scope.name `
    -ClientId $scope.clientid `
    -Type DHCP

 

Eine andere Frage wäre, wie ausgelastet sind denn die Bereiche? Vielleicht wäre es einfacher, die Konflikterkennung am neuen Windows DHCP zu aktivieren und neue Adressen vergeben zu lassen. Du kannst ja pro Scope auch zum Stichtag hin die Leasedauer verkürzen.

 

Gruß

Jan

Link zu diesem Kommentar

Es gibt Bereiche die einige tausend Adresse haben und dann auch nur /24er Bereiche. Das ist ganz unterschiedlich. Es ist alles dabei. 

Dank Dir habe ich begriffen was das Problem war. Ich habe es hinbekommen und die 189 Reservierungen für diesen Bereich erfolgreich importieren können.

Das ist eine Vorlage für alle anderen. Nun kann ich nach und nach umziehen. Danke euch!!!

 

Gruß Thomas

Link zu diesem Kommentar

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...