Problème exportation powershell en csv

Fermé
une_tite_louve - 27 mai 2016 à 13:32
joomliner Messages postés 89 Date d'inscription jeudi 9 juin 2011 Statut Membre Dernière intervention 1 août 2016 - 1 août 2016 à 04:52
Bonjour,

j'ai programmé le script suivant pour aller chercher une liste de user et la comparer à l'AD pour en resortir les informations qui en découlent (a partir du login, récupérer le nom, le service, etc...)


Mon problème est que lorsque j'essaie d'importer ces informations en csv, il me ressort un tableur vide. Quelqu'un pourrait me dire pourquoi?

Je dois également récupérer le nombre de postes pour chaque utilisateur ainsi que le nom de ces postes, qui en soit ne sont pas des informations en clair dans l'AD. J'aimerai donc savoir si vous aviez une idée pour les récuperer. J'admets que sur ca je sèche.

function Search($Sam)
{
$ads = new-object system.directoryservices.directorysearcher([ADSI]"LDAP://DC=...,DC=...","(&(objectCategory=person)(objectClass=user)(samaccountname=$Sam))")
$ads.pagesize = 1000
$result = $ads.findAll()

foreach ($i in $result)
{ # pour chaque users
# on récupère ses infos

$login = $i.Properties.samaccountname
$nom_complet= $i.Properties.name
$direction = $i.Properties.company
$respo = $i.Properties.manager -split ',' -replace '^CN=|,.*$'
$respo_new = $respo[0]

$user = $i.getdirectoryentry()

$distinguishedName = $user.Properties.distinguishedName


write-host $login
write-host $nom_complet
write-host $direction
write-host $respo_new

$outList | Select-Object -Property samaccountname, name, company, $respo_new | Export-Csv -path C:\...\UserAD.csv -NoTypeInformation
} # fin du foreach (chaque user)

#$dn = "LDAP://"+$result.GetDirectoryEntry().DistinguishedName
}

$file = "C:\Users\Public\Documents\Liste.txt"
$data = get-content $file
$data | %{

Search $_
}



PS (c'est mon premier script, soyez indulgent :) )

Merci à tous

A voir également:

1 réponse

joomliner Messages postés 89 Date d'inscription jeudi 9 juin 2011 Statut Membre Dernière intervention 1 août 2016 36
1 août 2016 à 04:52
Bonjour

Comme mentionner dans la meilleure reponse a la question sur ce site:

https://stackoverflow.com/questions/21047185/how-to-export-data-to-csv-in-powershell

Ce que je vous suggere dans le foreach d'ajouter chaque valeur dans un tableau

Apres le foreach, ecrire le tableau dans le csv.

Je n'ai pas le moyen de tester presentement mais il me semble que cela aura l'air de ca:



#Juste avant le foreach
$tableauUsagers= @()
foreach ($i in $result)
[...]

$outList | Select-Object -Property samaccountname, name, company, $respo_new

$tableauUsagers += New-Object PSObject -Property $outList

} # fin du foreach (chaque user)

# Ici, ecriture du CSV
$tableauUsagers | export-csv -path C:\...\UserAD.csv -NoTypeInformation

[...]



C'est une facon interessante car cela minimise le nombre d'ecriture au fichier (disque dur lent) versus utilisation de la memoire (VIVE comme l'eclair!)

Est-ce que cela vous enraille dans la bonne direction? Je l'espere!

Bon succes!
0