Bonjour,
Je souhaite réalisé un code me permettant de récupérer et ensuite de trier des adresses IP à partir d'un nom de machine.
Actuellement mon code est capable de lire un fichier nommé "listeposte.txt" ou sont inscrit les noms des PC dont les adresses IP doivent être récupérer.
Il range ensuite ces IP dans un autre fichier nommé "adresseposte.txt" (lorsqu'il trouve l'IP associé au nom d'hôte).
Si le nom d'hôte n'est associé à aucune IP, ils les placent alors dans un troisième et dernier fichier "erreur.txt".
Résumé de la situation :
Voici ce qui apparaît dans mon fichier adresseposte.txt :
"NOM MACHINE 1"/"ADRESSE MAC ICI"/169.254.130.203
"NOM MACHINE 1"/"ADRESSE MAC ICI"/192.168.1.11
"NOM MACHINE 2"/"ADRESSE MAC ICI"/169.254.130.203
"NOM MACHINE 2"/"ADRESSE MAC ICI"/192.168.1.11
Je souhaiterai maintenant avoir le même résultat mais avec les IP trier par ordre croissant.
De 1.1.1.1
1.1.1.2
1.1.2.1
à 1.3.1.1
ect...
VOICE MON CODE :
Voila ! Si quelqu'un peut m'aider rapidement svp.Code:$fichierPoste="C:\Users\***\Desktop\Logiciel BTS\Powershell\temp\listeposte.txt" $fichierAdresse="C:\Users\***\Desktop\Logiciel BTS\Powershell\temp\adresseposte.txt" $fichierErreur="C:\Users\***\Desktop\Logiciel BTS\Powershell\temp\erreur.txt" #On enregistre le contenu du fichier "fichierPoste" dans la variable listePoste $listePoste=Get-Content $fichierPoste foreach($nom in $listePoste) { #A l'aide de la variable filtre on ajoute derniere address le nom du poste $filtre="address='"+$nom+"'" #La prochaine ligne permet de faire un test de connexion vers le poste #avec un filtre construit à partir du nom. $test=Get-WmiObject Win32_PingStatus -Filter $filtre if ($test.StatusCode -eq 0) { #Retourne une collection d'objets du poste spécifié par -ComputerName $colCarte=Get-WmiObject Win32_NetworkAdapterConfiguration -Filter IPEnabled=True -ComputerName $nom | sort-object Ipaddress foreach($carte in $colCarte) { #Pour chaque configuration retournée, écriture d'une ligne dans le fichier #On écrit sur chaqu ligne le nom, l'adresse MAC et l'ip séparer par un / $ligne=$nom+"/"+$carte.MACAddress+"/"+$carte.IPAddress Add-Content $fichierAdresse $ligne } } #Si le test de connexion vers le poste a échouée on écrit dans le fichier erreur "pas trouvé le poste :" avec le nom du poste else{ Add-Content $fichierErreur "pas trouvé le poste : $nom" } }
Je vous remercie.
-----