DHCP MAC-Filter-Liste mit den Hostnamen der Leases abgleichen
Erläuterung
Hier werden alle aktuellen Addressleases, die unter Filterprofil „Allow“ oder „Zugelassen“ haben, gelesen und mit den Einträgen in der MAC-Filter-Liste „Allow“ oder „Zugelassen“ verglichen.
Im Detail wird die Lease-MAC (Reservierung aktiv oder inaktiv mit inbegriffen) in der MAC-Filter-Liste gesucht und der aktuelle Hostname der Lease in die Beschreibung des MAC-Eintrags aktualisiert.
Problembeschreibung
Die MAC-Filter-Liste die die MAC-Adressen mit „Allow“ oder „Deny“ (Zulassen oder Verweigern) aktualisiert nie ihre Beschreibung, wenn der Client z.B. sein Hostname ändert.
Download
Parameter
$strDHCPSRV = ‚Servername‘
$strScopeID = ‚10.1.0.0‘
Skript-Voraussetzungen
- Modul -> DhcpServer
Skript
<#
Jan Weis
www.it-explorations.de
v0.1
Dieses Skript liest alle aktuellen Leases und vergleicht in der MAC-FILTER-ALLOW Liste den Eintrag der passenden MAC
und aktualisiert die Beschreibung mit dem aktuellen Hostname aus der Addressleases-Liste, falls nötig.
Leere Lease-Hostname werden ignoriert
#>
# --- VARIABLEN --- #
$strDHCPSRV = 'server.domäne.local'
$strScopeID = '10.1.0.0'
# --- SKRIPT --- #
$objDHCPLeases = Get-DhcpServerv4Lease -ComputerName $strDHCPSRV -ScopeId $strScopeID | Where-Object {$_.HostName -notlike ''}
$objDHCPFilter = Get-DhcpServerv4Filter -ComputerName $strDHCPSRV
# Zähler
Write-Host "[ Es werden $($objDHCPLeases.Count) Leases mit den MAC-Filter-Einträgen abgeglichen.. Bitte warten.. ]" -ForegroundColor Yellow
Foreach ($objDHCPLeaseItem in $objDHCPLeases)
{
$objDHCPLeaseItemHostName = $objDHCPLeaseItem.HostName
$objDHCPLeaseItemMAC = $objDHCPLeaseItem.ClientId
# Prüft ob ein passender Eintrag in der MAC-Filter-Liste gefunden wird
$objDHCPFilterItem = $objDHCPFilter | Where-Object {$_.MacAddress -eq $objDHCPLeaseItemMAC -and $_.List -match 'Allow'}
if ($objDHCPFilterItem)
{
# Vergleiche MAC-Filter-Eintragsbeschreibung mit dem Hostname der Lease
if ($objDHCPFilterItem.Description -notlike $objDHCPLeaseItemHostName)
{
# DHCP-Beschreibung stimmt nicht überein! Anpassungen werden durchgeführt!
Remove-DhcpServerv4Filter -ComputerName $strDHCPSRV -MacAddress $($objDHCPFilterItem.MacAddress)
Add-DhcpServerv4Filter -ComputerName $strDHCPSRV -list Allow -Description $objDHCPLeaseItemHostName -MacAddress $objDHCPLeaseItemMAC
# Ausgabe
Write-Information ":: MAC:$($objDHCPFilterItem.MacAddress); Beschreibung von '$($objDHCPFilterItem.Description)' nach '$objDHCPLeaseItemHostName' angepasst!"
}
}
}