Problème exportation powershell en csv
une_tite_louve
-
joomliner Messages postés 89 Date d'inscription Statut Membre Dernière intervention -
joomliner Messages postés 89 Date d'inscription Statut Membre Dernière intervention -
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.
PS (c'est mon premier script, soyez indulgent :) )
Merci à tous
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:
- Problème exportation powershell en csv
- Virus powershell - Guide
- Windows powershell s'ouvre tout seul ✓ - Forum Virus
- Exporter excel en pdf sur une page - Guide
- Installer les compléments d'exportation microsoft pdf et xps - Télécharger - Bureautique
- Convertir csv en ofx - Forum Excel
1 réponse
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:
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!
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!