Cherche script powershell pour supprimer baux dhcp non utilisés [Résolu]

Messages postés
22
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
21 juin 2019
- - Dernière réponse : poliakov27
Messages postés
22
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
21 juin 2019
- 21 juin 2019 à 16:41
Bonjour,
Je dois régulièrement intervenir sur un serveur DHCP qui distribue des baux de plusieurs semaines (je ne peux pas modifier ce paramètre).
Tout se passait bien, jusqu’à maintenant, mais depuis quelque temps, de nombreuses personnes viennent faire des réunions et se connectent via ce serveur.
Le problème c'est qu'elles sont de passage pour la journée et me monopolisent les baux durant longtemps. Je suis donc obligé de faire du nettoyage régulièrement.
Pour le moment je le fais manuellement mais j'aimerai réussir à faire un script Powershell pour le faire.
Je cherche du coté de la commande Get-DhcpServerv4Lease mais je n'arrive pas à trouver le paramètre qui pourrait me permettre de tester ensuite s'ils répondent au ping, avec l'adresse du scope :
Ils peuvent répondre avec une adresse correspondant à un scope différent (car site distant), ou même avec une autre adresse dans le même scope (s'ils sont connecté en wifi, ethernet, avec un réplicateur de ports ils peuvent avoir 3 ip différentes voire plus s'ils ont des baux depuis d'autres sites...ou en VPN)

J'espère avoir été assez clair...
Merci d'avance ;-)
Afficher la suite 

1 réponse

Messages postés
22
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
21 juin 2019
0
Merci
J'ai fini par réussir : si ça intéresse quelqu'un :

# Liste les baux DHCP sur le scope 10.10.10.0
$targets = Get-DhcpServerv4Lease -ComputerName NomDuServeur -ScopeId 10.10.10.0
# boucle pour chaque bail actif
foreach($target in $targets)
{
# lance un ping sur chaque résultat
$onlinetest=Test-Connection -computername $target.IPAddress -Count 1 -quiet
switch ($onlinetest)
{
# si le ping répond
$true {
# si une réservation DHCP n'est pas active
if ($target.AddressState -eq "Active"){

write-host $target.IPAddress $target.hostname " online"
}
# si une réservation DHCP est active
else {
write-host $target.IPAddress $target.hostname " online Réservation" -BackgroundColor "Yellow" -ForegroundColor "black"
}
}
# si le ping ne répond pas
$false {
# si une réservation DHCP n'est pas active
if ($target.AddressState -eq "Active"){
write-host $target.IPAddress $target.hostname $target.ClientId " offline" -ForegroundColor "red"
Remove-DhcpServerv4Lease -ComputerName strutl09 -ScopeId 10.10.10.0 -ClientId $target.ClientId
}
# si une réservation DHCP est active
else {
write-host $target.IPAddress $target.hostname $target.ClientId "offline Réservation" -BackgroundColor "Yellow" -ForegroundColor "red"
}

}
# Dans les autres cas (normalement il n'y en a pas)
Default {write-host $target.IPAddress $target.hostname "A vérifier" -ForegroundColor "white" -BackgroundColor "black"}
}

}

Commenter la réponse de poliakov27