Question
Extraction réservation DHCP - tri par ipaddress
- Jacquemin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 10 ans 3 mois #21177
par Jacquemin
Extraction réservation DHCP - tri par ipaddress a été créé par Jacquemin
Bonjour,
Un truc qui parait simple un tri sur l'object Ipaddress concernant les réservations d'un serveur DHCP
J'utilise la commande :
Get-DhcpServerv4Reservation -ComputerName bonServeur -ScopeId 192.168.0.0 | sort-object Ipaddress
J'ai comme résultat :
192.168.0.1
192.168.0.10
192.168.0.2
....
au lieu de :
192.168.0.1
192.168.0.2
192.168.0.10
....
Beaucoup de tests en utilisant address.ipaddressToString pour forcer le type IP ou encore \"{0:d3}.{1:d3}.{2:d3}.{3:d3}\" pour le formatage
de type 192.168.000.001 soit 2 approches différentes mais .... je galère.
Le tri dans le 1er cas semble se faire sur du string et dans le 2ème cas le formatage se fait bien un fichier simple
mais pas avec le fichier complet récupéré de l'extraction.
Merci de votre aide car je ne sais plus quoi faire !
JCJ
Message édité par: JCJ, à: 7/12/15 15:25<br><br>Message édité par: JCJ, à: 7/12/15 15:26
Un truc qui parait simple un tri sur l'object Ipaddress concernant les réservations d'un serveur DHCP
J'utilise la commande :
Get-DhcpServerv4Reservation -ComputerName bonServeur -ScopeId 192.168.0.0 | sort-object Ipaddress
J'ai comme résultat :
192.168.0.1
192.168.0.10
192.168.0.2
....
au lieu de :
192.168.0.1
192.168.0.2
192.168.0.10
....
Beaucoup de tests en utilisant address.ipaddressToString pour forcer le type IP ou encore \"{0:d3}.{1:d3}.{2:d3}.{3:d3}\" pour le formatage
de type 192.168.000.001 soit 2 approches différentes mais .... je galère.
Le tri dans le 1er cas semble se faire sur du string et dans le 2ème cas le formatage se fait bien un fichier simple
Merci de votre aide car je ne sais plus quoi faire !
JCJ
Message édité par: JCJ, à: 7/12/15 15:25<br><br>Message édité par: JCJ, à: 7/12/15 15:26
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 3 mois #21180
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Extraction réservation DHCP - tri par ipaddress
Salut,
JCJ écrit:
L'adaptation de 1 en '001' est juste pour la visualisation (formatage).
Sans le fichier sous les yeux ni la manière de le générer il est difficile de t'aider, vérifie sa structure et son encodage.
JCJ écrit:
le type de l'objet renvoyé par le cmdlet contient bien un champ de type string, pour le tri il faut effectivement le caster en IPAddress.mais pas avec le fichier complet récupéré de l'extraction.
L'adaptation de 1 en '001' est juste pour la visualisation (formatage).
Sans le fichier sous les yeux ni la manière de le générer il est difficile de t'aider, vérifie sa structure et son encodage.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Jacquemin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 10 ans 3 mois #21181
par Jacquemin
Réponse de Jacquemin sur le sujet Re:Extraction réservation DHCP - tri par ipaddress
Merci de ton retour.
J'ai progressé mais c'est pas tout à fait ce que je souhaite.
Je vais essayer d'être plus précis :
Le détail du script qui me permet maintenant d'avoir un tri IP correct mais seul comme champ.
Je suis passé par la création d'un tableau temporaire qui caste en Ipaddress
Mais j'aimerais récuperer également le \"name\" et je coince !!!
&#65279;clear
# format tableau apres Get-DhcpServerv4Reservation -ScopeId 192.168.27.0 | Export-Csv list.csv
#
#\"IP\",\"ScopeId\",\"AddressState\",\"ClientId\",\"Description\",\"Name\",\"Type\",\"PSComputerName\"
#\"192.168.27.38\",\"192.168.27.0\",\"ActiveReservation\",\"00-1F-FF-FF-65-87\",\"2\",\"machine1\",\"Dhcp\",
#\"192.168.27.3\",\"192.168.27.0\",\"ActiveReservation\",\"00-24-e8-2d-FF-FF\",\"3\",\"machine2\",\"Dhcp\",
#\"192.168.27.111\",\"192.168.27.0\",\"ActiveReservation\",\"FF-FF-19-27-18-b6\",\"213\",\"machine3\",\"Dhcp\",
#\"192.168.27.5\",\"192.168.27.0\",\"ActiveReservation\",\"d0-67-eF-FF-95-3a\",\"3\",\"machine4\",\"Dhcp\"
$result = ipcsv .\liste.csv
$tableau = @()
foreach ($reservation in $result) {
$adresseIP = $reservation.ip
$adresseIP = [ipaddress]$adresseIP.trim()
$tableau += $adresseIP
}
$tableau | Sort-Object address |Format-Table IPaddressTostring
# Resultat
# 192.168.27.3
# 192.168.27.5
# 192.168.27.38
# 192.168.27.111
# Le classement est bon ! reste à trouver la soluce pour integrer le Name du tableau initial... pour un #resultat de type :
# 192.168.27.3,machine2
# 192.168.27.5,machine4
# 192.168.27.38,machine1
# 192.168.27.111,machine3<br><br>Message édité par: JCJ, à: 7/12/15 20:23
J'ai progressé mais c'est pas tout à fait ce que je souhaite.
Je vais essayer d'être plus précis :
Le détail du script qui me permet maintenant d'avoir un tri IP correct mais seul comme champ.
Je suis passé par la création d'un tableau temporaire qui caste en Ipaddress
Mais j'aimerais récuperer également le \"name\" et je coince !!!
&#65279;clear
# format tableau apres Get-DhcpServerv4Reservation -ScopeId 192.168.27.0 | Export-Csv list.csv
#
#\"IP\",\"ScopeId\",\"AddressState\",\"ClientId\",\"Description\",\"Name\",\"Type\",\"PSComputerName\"
#\"192.168.27.38\",\"192.168.27.0\",\"ActiveReservation\",\"00-1F-FF-FF-65-87\",\"2\",\"machine1\",\"Dhcp\",
#\"192.168.27.3\",\"192.168.27.0\",\"ActiveReservation\",\"00-24-e8-2d-FF-FF\",\"3\",\"machine2\",\"Dhcp\",
#\"192.168.27.111\",\"192.168.27.0\",\"ActiveReservation\",\"FF-FF-19-27-18-b6\",\"213\",\"machine3\",\"Dhcp\",
#\"192.168.27.5\",\"192.168.27.0\",\"ActiveReservation\",\"d0-67-eF-FF-95-3a\",\"3\",\"machine4\",\"Dhcp\"
$result = ipcsv .\liste.csv
$tableau = @()
foreach ($reservation in $result) {
$adresseIP = $reservation.ip
$adresseIP = [ipaddress]$adresseIP.trim()
$tableau += $adresseIP
}
$tableau | Sort-Object address |Format-Table IPaddressTostring
# Resultat
# 192.168.27.3
# 192.168.27.5
# 192.168.27.38
# 192.168.27.111
# Le classement est bon ! reste à trouver la soluce pour integrer le Name du tableau initial... pour un #resultat de type :
# 192.168.27.3,machine2
# 192.168.27.5,machine4
# 192.168.27.38,machine1
# 192.168.27.111,machine3<br><br>Message édité par: JCJ, à: 7/12/15 20:23
Connexion ou Créer un compte pour participer à la conversation.
- Jacquemin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 10 ans 3 mois #21182
par Jacquemin
Réponse de Jacquemin sur le sujet Re:Extraction réservation DHCP - tri par ip
La persévérance finit par par payer !
le script ok mais je suis sur qu'il y a plus simple
&#65279;clear
# format tableau apres Get-DhcpServerv4Reservation -ScopeId 192.168.27.0 | Export-Csv list.csv
#
#\"IP\",\"ScopeId\",\"AddressState\",\"ClientId\",\"Description\",\"Name\",\"Type\",\"PSComputerName\"
#\"192.168.27.38\",\"192.168.27.0\",\"ActiveReservation\",\"00-1F-FF-FF-65-87\",\"2\",\"machine1\",\"Dhcp\",
#\"192.168.27.3\",\"192.168.27.0\",\"ActiveReservation\",\"00-24-e8-2d-FF-FF\",\"3\",\"machine2\",\"Dhcp\",
#\"192.168.27.111\",\"192.168.27.0\",\"ActiveReservation\",\"FF-FF-19-27-18-b6\",\"213\",\"machine3\",\"Dhcp\",
#\"192.168.27.5\",\"192.168.27.0\",\"ActiveReservation\",\"d0-67-eF-FF-95-3a\",\"3\",\"machine4\",\"Dhcp\"
$result = ipcsv .\liste.csv
$tableau = @()
foreach ($reservation in $result) {
$adresseIP = $reservation.IP
$adresseIP = $adresseIP -split ','
[int[]] $t=($adresseIP -split \"\.\")
$NadresseIP=\"$(\"{0:d3}.{1:d3}.{2:d3}.{3:d3}\" -F $t[0],$t[1],$t[2],$t[3])\"
$ligne = New-Object psobject
$ligne | Add-Member -name IP -MemberType NoteProperty -Value $NadresseIP
$ligne | Add-Member -name NOM -MemberType NoteProperty -Value $reservation.Name
$tableau += $ligne
}
$tableau | Sort-Object IP | Format-Table -AutoSize
#| Export-Csv reservations.csv si nécessaire
# Le classement est bon !
le script ok mais je suis sur qu'il y a plus simple
&#65279;clear
# format tableau apres Get-DhcpServerv4Reservation -ScopeId 192.168.27.0 | Export-Csv list.csv
#
#\"IP\",\"ScopeId\",\"AddressState\",\"ClientId\",\"Description\",\"Name\",\"Type\",\"PSComputerName\"
#\"192.168.27.38\",\"192.168.27.0\",\"ActiveReservation\",\"00-1F-FF-FF-65-87\",\"2\",\"machine1\",\"Dhcp\",
#\"192.168.27.3\",\"192.168.27.0\",\"ActiveReservation\",\"00-24-e8-2d-FF-FF\",\"3\",\"machine2\",\"Dhcp\",
#\"192.168.27.111\",\"192.168.27.0\",\"ActiveReservation\",\"FF-FF-19-27-18-b6\",\"213\",\"machine3\",\"Dhcp\",
#\"192.168.27.5\",\"192.168.27.0\",\"ActiveReservation\",\"d0-67-eF-FF-95-3a\",\"3\",\"machine4\",\"Dhcp\"
$result = ipcsv .\liste.csv
$tableau = @()
foreach ($reservation in $result) {
$adresseIP = $reservation.IP
$adresseIP = $adresseIP -split ','
[int[]] $t=($adresseIP -split \"\.\")
$NadresseIP=\"$(\"{0:d3}.{1:d3}.{2:d3}.{3:d3}\" -F $t[0],$t[1],$t[2],$t[3])\"
$ligne = New-Object psobject
$ligne | Add-Member -name IP -MemberType NoteProperty -Value $NadresseIP
$ligne | Add-Member -name NOM -MemberType NoteProperty -Value $reservation.Name
$tableau += $ligne
}
$tableau | Sort-Object IP | Format-Table -AutoSize
#| Export-Csv reservations.csv si nécessaire
# Le classement est bon !
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 3 mois #21188
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Extraction réservation DHCP - tri par ip
JCJ écrit:

JCJ écrit:
Par contre ceci est à éviter :
[code:1] $tableau += $ligne[/code:1]
car tu reconstruis un nouvel objet tableau à chaque itération, un arraylist ou un autre type de collection évite ce pb.
Et pour :
[code:1]$ligne = New-Object psobject [/code:1]
ligne est un objet, la ligne n'existe que dans le fichier. Certes c'est un détail
hé oui, y a pas de secretLa persévérance finit par par payer !
JCJ écrit:
Pour le moment cela me semble suffisant, un select-object ferait aussi l'affaire.le script ok mais je suis sur qu'il y a plus simple
Par contre ceci est à éviter :
[code:1] $tableau += $ligne[/code:1]
car tu reconstruis un nouvel objet tableau à chaque itération, un arraylist ou un autre type de collection évite ce pb.
Et pour :
[code:1]$ligne = New-Object psobject [/code:1]
ligne est un objet, la ligne n'existe que dans le fichier. Certes c'est un détail
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.098 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Extraction réservation DHCP - tri par ipaddress