Question
[Résolu] Récupération Adresse IP
- VIncent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 3
- Remerciements reçus 0
Débutant je suis en PowerShell, et je commence par un script d'inventaire de mes serveurs.
J'ai réussi à obtenir toutes les infos que j'ai besoin, mais j'ai un problème de sorti au niveau des adresses IP.
Voici mon script :
$credentials = get-credential
$resultsarray =@()
$servers = get-content listesrvtest.txt | where {$_ -ne \"\"}
foreach ($srv in $servers) {
$ListIP = Get-WmiObject -Computername $srv -credential $credentials Win32_NetworkAdapterConfiguration | where {$_.ipenabled -eq \"true\" -and $_.IPAddress -ne \"0.0.0.0\"}| Select-object {$_.IPAddress}
$ListIP | Add-Member -MemberType NoteProperty -Name PCName -Value $srv
$resultsarray += $ListIP
Write-Output \"$srv : Ok\"
}
$resultsarray | Export-csv IP1.csv -notypeinformation -Delimiter \";\" -encoding \"unicode\"
Et la sorti CSV me donne :
\"$_.IPAddress\";\"PCName\"
\"192.168.0.10\";\"Serveur1\"
\"192.168.0.15\";\"Serveur1\"
\"57.200.2.10\";\"Serveur1\"
\"172.31.0.11\";\"Serveur101\"
\"192.168.0.16\";\"Serveur101\"
\"192.168.2.20\";\"Serveur101\"
Mais pour pourvoir gérer dans des fichiers excel par la suite, je cherche à avoir une sortie de ce type :
\"Serveur1\";\"192.168.0.10\";\"192.168.0.15\";\"57.200.2.10\"
\"Serveur101\";\"172.31.0.11\";\"\"192.168.0.16\";\"192.168.2.20\"
Merci par avance pour votre aide....<br><br>Message édité par: Arnaud, à: 31/08/16 15:50
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
ta question date d'une semaine, j'espère que tu a déjà trouvé une solutionJ'ai réussi à obtenir toutes les infos que j'ai besoin, mais j'ai un problème de sorti au niveau des adresses IP.
sinon j'ai une solution ci dessous :
tu veux toutes les adresses ip d'un serveurs sur une seul ligne mais sur plusieurs colonne dans excelMais pour pourvoir gérer dans des fichiers excel par la suite, je cherche à avoir une sortie de ce type :
attention chaque interface peut avoir plusieurs adresse ip et tu peut avoir plusieurs interface (carte réseau) par serveur
c'est donc un tableau de tableaux que du doit géré d'où le double foreach dans mon script
j'ai donc créé un objet list que j'utilise comme tu la fait avec un seul member pour la propriété IPaddress et j'ai un peu rusé avec le séparateur pour que excel puisse voir plusieurs colonne !!!
[code:1]
$credentials = get-credential
$separateur = \";\"
$resultsarray = @()
$servers = get-content listesrvtest.txt | where {$_ -ne \"\"}
foreach ($srv in $servers) {
$ok = 0
Get-WmiObject -Computername $srv -credential $credentials Win32_NetworkAdapterConfiguration | where {$_.ipenabled -eq \"true\" -and $_.IPAddress -ne \"0.0.0.0\"} | foreach {$_.IPAddress} | foreach {
if ($ok) {
$listIP += \"$separateur $($_)\"
}
else {
$listIP = \"$($_)\"
}
$ok = 1
}
$list = New-Object -TypeName PSObject
$List | Add-Member -MemberType NoteProperty -Name PCName -Value $srv
$List | Add-Member -MemberType NoteProperty -Name IPAddress -Value $listIP
$resultsarray += $List
Write-Output \"$srv : Ok\"
}
$resultsarray | Export-csv IP1.csv -notypeinformation -Delimiter $separateur -encoding \"unicode\"
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- VIncent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 3
- Remerciements reçus 0
Le script marche très bien et fait exactement ce que j'ai besoin.
j'ai pu le rajouter dans mon script d'inventaire.
J'ai une petite question, est ce qu'il est possible de modifier la sortie afin de mettre une IP par cellule, car lors de l'intégration du CSV dans Excel on obtient toutes les IP dans une seul cellule..
Sortie CSV :
\"srv01\";\"192.31.4.155; 192.168.146.2; 192.168.48.100\"
Du coup sorti Excel :
PCName IPAddress
srv01 192.31.4.155; 192.168.146.2; 192.168.48.100
Merci encore de ton aide !!
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
c'était sensé le faireJ'ai une petite question, est ce qu'il est possible de modifier la sortie afin de mettre une IP par cellule, car lors de l'intégration du CSV dans Excel on obtient toutes les IP dans une seul cellule..
mais je suis vraiment pas doué pour les objets !!!!
une autre approche :
[code:1]$separateur = \";\"
$credentials = get-credential
$resultsarray = @()
$servers = get-content listesrvtest.txt | where {$_ -ne \"\"}
$resultsarray = foreach ($srv in $servers) {
$list = New-Object -TypeName PSObject
$List | Add-Member -MemberType NoteProperty -Name PCName -Value $srv
$ind = 1
Get-WmiObject -Computername $srv -credential $credentials Win32_NetworkAdapterConfiguration | where {$_.ipenabled -eq \"true\" -and $_.IPAddress -ne \"0.0.0.0\"} | foreach {$_.IPAddress} | foreach {
$List | Add-Member -MemberType NoteProperty -Name \"IPAddress$ind\" -Value $_
$ind++
}
$List | select PCName, IPAddress1, IPAddress2
Write-host \"$srv : Ok\"
}
$resultsarray | Export-csv c:\IP1.csv -notypeinformation -Delimiter $separateur -encoding \"unicode\"
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- VIncent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 3
- Remerciements reçus 0
Merci beaucoup de ton aide !!!!!!
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Récupération Adresse IP