Question CSV Powershell

Plus d'informations
il y a 11 ans 8 mois #17780 par kevin
CSV Powershell a été créé par kevin
Bonjour,

Je suis nouveau en powershell et je suis venu sur ce site afin de trouver de l'aide pour réaliser mon script.

Pour résumer, j'ai un fichier CSV avec 2 colonnes :

Utilisateur,Hostname
Catherine,EF123658
Laurent,EL021456

Je voudrais donc pour chaque ligne, effectuer un ping du poste et retourner la valeur True ou False dans une nouvelle colonne pour chaque valeur.

J'ai déja un début de script mais cela ne fonctionne pas.

$Files = Import-csv C:\Users\doc\Desktop\filetest.csv

foreach ($user in $files)
{

$test=$user.utilisateur
$poste=$user.hostname
$ping=Test-Connection -Computername $poste -BufferSize 16 -Count 1 -Quiet

$Files | Select *,@{Name=\"Resultat PING \";Expression={$ping}} | Export-CSV -Path C:\Users\gerardk\Desktop\result1.csv
}

Je retrouve donc dans mon nouveau fichier CSV, une colonne \"Resultat Ping\". Cependant cela me retourne pour chaque ligne, le dernier resultat du ping.

Ce qui donne

Utilisateur,Hostname,Resultat Ping
Catherine,EF123658,False
Laurent,EL021456,False

Le premier poste est allumé et le second est eteint. Je voudrais donc que le script ping chaque poste et renvoi dans la derniere colonne le resultat du ping.

Cela devrait me retourner

Catherine,EF123658,True
Laurent,EL021456,False

Merci pour votre aide

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #17782 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:CSV Powershell
Salut,
ceci fonctionne :
[code:1]
$user|Select *,@{ Name=\"Resultat PING \";Expression={$ping} }
[/code:1]
Mais tu réécris le fichier à chaque itération. L'objet primaire n'est pas modifié.
Une autre approche (à adapter au cas où) :
[code:1]
$File='c:\temp\user.csv'
@'
Utilisateur,Hostname
Catherine,EF123658
Laurent,EL021456
'@ > $File

$Objets=Import-csv $File -delimiter ','

foreach ($User in $Objets)
{
$Result=Test-Connection $User.Hostname -ErrorAction SilentlyContinue -Quiet
$User|Add-member NoteProperty ResultatPing $Result
}
$Objets|fl
# Utilisateur : Catherine
# Hostname : EF123658
# ResultatPing : False
#
# Utilisateur : Laurent
# Hostname : EL021456
# ResultatPing : False

$Objets|Export-csv c:\temp\user2.csv -delimiter ',' -NoTypeInformation
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.039 secondes
Propulsé par Kunena