Script PowerShell for export DHCP MAC address and import to Active Directory
Success stories & community contributions
3
Posts
3
Posters
2.9k
Views
1
Watching
-
I just finished a powershell script to extract known MAC addresses from the DHCP server and import them into the Active Directory.
The search for the range is automatic and before executing the script as it is you are invited to try it by commenting the line n°20 which starts with Set-ADComputer
If you find improvements to be made, please indicate this by answering this subject.
# Extraction de l'étendue $scope=Get-DhcpServerv4Scope | Select-Object ScopeId | ForEach-Object {$_.ScopeId} | ForEach-Object {$_.IPaddressToString} Write-Host "L'étendue est $scope" # Liste des stations par nom Get-ADComputer -Filter {OperatingSystem -NotLike "*server*"} -Property Name | select-object -expandproperty name | ForEach-Object { # Récupération du nom de la station $AD_station="$_" # Extraction de l'adresse MAC selon le nom de la station $DHCP_MAC=Get-DhcpServerv4Lease -computername $env:computername -allleases -ScopeId $scope | Where-Object {$_.HostName -like "*$AD_station*"} | select-object -expandproperty ClientID #Write-Host "L'adresse MAC de $AD_station est $DHCP_MAC" # Ajout de l'adresse MAC dans l'attribut wWWHomePage if($DHCP_MAC) { # Set-ADComputer à commenter pour vos tests Set-ADComputer $AD_station -HomePage $DHCP_MAC Write-Host "L'adresse MAC $DHCP_MAC à été ajoutée dans l'AD à l'attribut wWWHomePage de la station $AD_station" } }
-
Hi ! I just replaced the second line with $scope="172.16.0.0" because the other scopes concern dhcp relay and I had many errors.
Nice work, thank you !I made a small edit on the script, now it can be used with more than one scope in the DHCP server.
# Extraction de l'étendue $scope=Get-DhcpServerv4Scope | Select-Object ScopeId | ForEach-Object {$_.ScopeId} | ForEach-Object {$_.IPaddressToString} Write-Host "L'étendue est $scope" for ($i=0; $i -lt $scope.length; $i++){ # Liste des stations par nom Get-ADComputer -Filter {OperatingSystem -NotLike "*server*"} -Property Name | select-object -expandproperty name | ForEach-Object { # Récupération du nom de la station $AD_station="$_" # Extraction de l'adresse MAC selon le nom de la station $DHCP_MAC=Get-DhcpServerv4Lease -computername $env:computername -allleases -ScopeId $scope[$i] | Where-Object {$_.HostName -like "*$AD_station*"} | select-object -expandproperty ClientID #Write-Host "L'adresse MAC de $AD_station est $DHCP_MAC" # Ajout de l'adresse MAC dans l'attribut wWWHomePage if($DHCP_MAC) { # Set-ADComputer à commenter pour vos tests Set-ADComputer $AD_station -HomePage $DHCP_MAC Write-Host "L'adresse MAC $DHCP_MAC à été ajoutée dans l'AD à l'attribut wWWHomePage de la station $AD_station" } } }