Cherche script powershell pour supprimer baux dhcp non utilisés

Résolu/Fermé
poliakov27 Messages postés 21 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 21 juin 2019 - 21 juin 2019 à 12:02
poliakov27 Messages postés 21 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 ;-)
A voir également:

1 réponse

poliakov27 Messages postés 21 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 21 juin 2019 1
21 juin 2019 à 16:41
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"}
}

}

1