Question
CSV Powershell
- kevin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 8 mois #17782
par Laurent Dardenne
Tutoriels PowerShell
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]
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- CSV Powershell