Question Export-csv

Plus d'informations
il y a 17 ans 2 semaines #4255 par physyo
Export-csv a été créé par physyo
Bonjour tout le monde

Je me suis lancé dans powershell il y a peux de temps donc je suis un peux un noob de powershell mais essayer de faire des progrés ^^

Alors voila. Je voudrai exporter en csv une liste des utilisateurs AD avec le displayname et le mail.

j'arrive à faire la liste avec le nom et le mail grace au script trouver sur le site mais je sais pas comment faire pour l'exporter en csv

[code:1]$ldapQuery = \"(&(objectCategory=user))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()

foreach ($i in $complist)
{
write-host $i.properties.displayname,$i.properties.mail
}
[/code:1]

J'ai bien bien essayer quelques chose dans ce style mais rien n'y fait

[code:1]$complist | select-object $i.properties.displayname, $i.properties.mail | export-csv $fichier [/code:1]

Je sais qu'il y a déjà eu des postes similaire sur le forum mais j'ai pas su trouver la réponse

Merci de votre aide

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

Plus d'informations
il y a 17 ans 2 semaines #4256 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Export-csv
Salut,
la ligne suivante suivante :
[code:1]
$complist | select-object $i.properties.displayname, $i.properties.mail | export-csv $fichier
[/code:1]
semble être une concaténation de lignes d'usage différent.
Si tu utilises une boucle avec $i, il n'est pas nécessaire d'utiliser $complist dans le pipeline, la boucle itère déjà sur cette collection :
[code:1]
foreach ($i in $complist)
{
write-host $i.properties.displayname,$i.properties.mail
select-object -InputObject $i -property property1,property2 | export-csv $fichier
}
[/code:1]
Si tu utilises uniquement le pipeline $i n'est pas reconnu et l'objet courant issu du pipeline est par défaut sélectionné :
[code:1]
$complist | select-object @{Name=\"Displayname\"; Expression={$_.properties.displayname}},@{Name=\"Mail\"; Expression={$_.properties.mail}}|| export-csv $fichier
[/code:1]
Comme ici la propriété à sélectionner est imbriquée il faut utiliser la syntaxe evoluée ci-dessus ou utiliser l'approche suivante :
[code:1]
$complist | select-object -expandProperty properties|Select displayname,mail| export-csv $fichier
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 4/03/09 15:55

Tutoriels PowerShell

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

Plus d'informations
il y a 17 ans 2 semaines #4258 par physyo
Réponse de physyo sur le sujet Re:Export-csv
Ok

Je te remercie beaucoup pour ton aide.

Je ne savais plus quoi faire sinon

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

Plus d'informations
il y a 17 ans 2 semaines #4260 par Robin Lemesle
Réponse de Robin Lemesle sur le sujet Re:Export-csv

Je ne savais plus quoi faire sinon


Il ne faut pas désèsperer comme ca :laugh: .

[code:1]$complist | select-object $i.properties.displayname, $i.properties.mail | export-csv $fichier
[/code:1]


Comme le dit très justement Laurent, dans ton cas $i n'est pas connu (il était utilisé dans la boucle). La solution la plus simple à comprendre et à retrouver (si ce n'est pas toi qui va relir le script), c'est d'insérer le export dans la boucle.

[code:1]foreach ($i in $complist)
{
write-host $i.properties.displayname,$i.properties.mail
select-object -InputObject $i -property property1,property2 | export-csv $fichier
}

[/code:1]

Voila, @ bientôt

Robin MVP PowerShell

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

Plus d'informations
il y a 17 ans 2 semaines #4262 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Export-csv
Robin écrit:

c'est d'insérer le export dans la boucle.

Dans mon explication je m'attardais sur la différence d'usage des variables, mais ta remarque me permet de rectifier une erreur car si on insére l'export dans la boucle foreach le fichier ne contiendra que les informations du dernier objet. Et dans le cas où on souhaite effectuer un traitement de + instructions, il est préférable d'utiliser le pipeline avec le cmdlet Foreach-Object.

Tutoriels PowerShell

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

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