Question
[Résolu] Export-CSV tableau et données
- Pascal
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 26
- Remerciements reçus 0
il y a 8 ans 8 mois #24202
par Pascal
[Résolu] Export-CSV tableau et données a été créé par Pascal
Bonjour,
Je vous sollicite à nouveau pour une demande un peu plus particulière.
J'ai créé un script qui extrait les groupes de distribution, et qui pour chaque groupe me donne la liste des membres ainsi que leur statut (Enabled True/False)
J'arrive à obtenir un résultat satisfaisant dans le prompt PowerShell, mais pas à en faire un CSV (ou autre) exploitable sur Excel
Voici le script :
[code:1]
#Initialisation d'un compteur
$indexGroup=0
#Récupération des DN des groupes de distributions
$DNdesGroupDistrib = Get-ADGroup -Filter { GroupCategory -eq \"Distribution\" } -Properties * | Select DistinguishedName,CanonicalName,CN,GroupCategory
#Boucle récupérant les membres du groupe selon la position de l'index
foreach ($elementsdelavariable in $DNdesGroupDistrib)
{
$DNdesGroupDistrib[$indexGroup].CN | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
#$DNdesGroupDistrib[$indexGroup].CN | Out-File -Width 70 \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -append
Get-ADGroupMember -identity $DNdesGroupDistrib[$indexGroup].DistinguishedName -recursive | get-aduser | Sort Enabled | Select Name, Enabled | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
$indexGroup++
}
[/code:1]
J'ai mis en commentaire comment j'ai mon OutFile et en actif comment j'ai mon export CSV
Correspond à OutFile
Correspond à Export-CSV
Résultat souhaité sur Excel
Si vous aviez de quoi m'aiguiller ça serait super sympa
Message édité par: clads92, à: 7/09/17 13:51
Message édité par: clads92, à: 7/09/17 15:10<br><br>Message édité par: Arnaud, à: 12/09/17 22:48
Je vous sollicite à nouveau pour une demande un peu plus particulière.
J'ai créé un script qui extrait les groupes de distribution, et qui pour chaque groupe me donne la liste des membres ainsi que leur statut (Enabled True/False)
J'arrive à obtenir un résultat satisfaisant dans le prompt PowerShell, mais pas à en faire un CSV (ou autre) exploitable sur Excel
Voici le script :
[code:1]
#Initialisation d'un compteur
$indexGroup=0
#Récupération des DN des groupes de distributions
$DNdesGroupDistrib = Get-ADGroup -Filter { GroupCategory -eq \"Distribution\" } -Properties * | Select DistinguishedName,CanonicalName,CN,GroupCategory
#Boucle récupérant les membres du groupe selon la position de l'index
foreach ($elementsdelavariable in $DNdesGroupDistrib)
{
$DNdesGroupDistrib[$indexGroup].CN | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
#$DNdesGroupDistrib[$indexGroup].CN | Out-File -Width 70 \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -append
Get-ADGroupMember -identity $DNdesGroupDistrib[$indexGroup].DistinguishedName -recursive | get-aduser | Sort Enabled | Select Name, Enabled | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
$indexGroup++
}
[/code:1]
J'ai mis en commentaire comment j'ai mon OutFile et en actif comment j'ai mon export CSV
Si vous aviez de quoi m'aiguiller ça serait super sympa
Message édité par: clads92, à: 7/09/17 13:51
Message édité par: clads92, à: 7/09/17 15:10<br><br>Message édité par: Arnaud, à: 12/09/17 22:48
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 8 ans 8 mois #24215
par Philippe
Réponse de Philippe sur le sujet Re:Export-CSV ’ tableau et données
la base de ton script est bon
mais tu a oublier un truc sur les CSV
il y a des nom de colonne !
et donc quand tu fais un append il cherche a faire coïncidé les noms qui ce trouve sur la première ligne sur le fichier et ceux que tu exporte !!
et donc ça coïncide plus entre le nom du groupe et la liste d'utilisateur
même problème quand tu fais le out-file puis l'export-CSV
il va falloir tous faire en out-file ou triché un peu sur les nom de colonne
une façon de truandé export-csv :
[code:1]#Récupération des DN des groupes de distributions
$DNdesGroupDistrib = Get-ADGroup -Filter { GroupCategory -eq \"Distribution\" } -Properties DistinguishedName, CanonicalName, CN, GroupCategory | Select DistinguishedName, CanonicalName, CN, GroupCategory
#Boucle récupérant les membres du groupe selon la position de l'index
foreach ($elementsdelavariable in $DNdesGroupDistrib) {
$elementsdelavariable.CN | select @{n=\"Name\";e={\" \"}}, @{n=\"Enabled\";e={\" \"}} | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
$elementsdelavariable.CN | select @{n=\"Name\";e={\"groupe : \"}}, @{n=\"Enabled\";e={$_}} | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
$elementsdelavariable.CN | select @{n=\"Name\";e={\" \"}}, @{n=\"Enabled\";e={\" \"}} | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
#$DNdesGroupDistrib[$indexGroup].CN | Out-File -Width 70 \"C:\logs scripts\ExtractGroup.csv\" -append utf8
Get-ADGroupMember -identity $elementsdelavariable.DistinguishedName -recursive | get-aduser | Sort Enabled | Select Name, Enabled | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
}
[/code:1]<br><br>Message édité par: 6ratgus, à: 7/09/17 17:52
mais tu a oublier un truc sur les CSV
il y a des nom de colonne !
et donc quand tu fais un append il cherche a faire coïncidé les noms qui ce trouve sur la première ligne sur le fichier et ceux que tu exporte !!
et donc ça coïncide plus entre le nom du groupe et la liste d'utilisateur
même problème quand tu fais le out-file puis l'export-CSV
il va falloir tous faire en out-file ou triché un peu sur les nom de colonne
une façon de truandé export-csv :
[code:1]#Récupération des DN des groupes de distributions
$DNdesGroupDistrib = Get-ADGroup -Filter { GroupCategory -eq \"Distribution\" } -Properties DistinguishedName, CanonicalName, CN, GroupCategory | Select DistinguishedName, CanonicalName, CN, GroupCategory
#Boucle récupérant les membres du groupe selon la position de l'index
foreach ($elementsdelavariable in $DNdesGroupDistrib) {
$elementsdelavariable.CN | select @{n=\"Name\";e={\" \"}}, @{n=\"Enabled\";e={\" \"}} | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
$elementsdelavariable.CN | select @{n=\"Name\";e={\"groupe : \"}}, @{n=\"Enabled\";e={$_}} | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
$elementsdelavariable.CN | select @{n=\"Name\";e={\" \"}}, @{n=\"Enabled\";e={\" \"}} | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
#$DNdesGroupDistrib[$indexGroup].CN | Out-File -Width 70 \"C:\logs scripts\ExtractGroup.csv\" -append utf8
Get-ADGroupMember -identity $elementsdelavariable.DistinguishedName -recursive | get-aduser | Sort Enabled | Select Name, Enabled | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation -Append
}
[/code:1]<br><br>Message édité par: 6ratgus, à: 7/09/17 17:52
Connexion ou Créer un compte pour participer à la conversation.
- Pascal
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 26
- Remerciements reçus 0
il y a 8 ans 8 mois #24224
par Pascal
Réponse de Pascal sur le sujet Re:Export-CSV ’ tableau et données
doublon<br><br>Message édité par: clads92, à: 8/09/17 11:33
Connexion ou Créer un compte pour participer à la conversation.
- Pascal
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 26
- Remerciements reçus 0
il y a 8 ans 8 mois #24225
par Pascal
Réponse de Pascal sur le sujet Re:Export-CSV ’ tableau et données
Merci beaucoup pour ta réponse !
C'est nickel comme résultat !
Cependant j'aimerai approfondir ta solution, pourrais-tu quand tu as le temps stp m'expliquer
[code:1]$elementsdelavariable.CN | select @{n=\"Name\";e={\" \"}}, @{n=\"Enabled\";e={\" \"}}
$elementsdelavariable.CN | select @{n=\"Name\";e={\"groupe : \"}}, @{n=\"Enabled\";e={$_}}
$elementsdelavariable.CN | select @{n=\"Name\";e={\" \"}}, @{n=\"Enabled\";e={\" \"}}[/code:1]
Merci encore !
*******************************************************
Le besoin à \"évolué\" du côté de ma hiérarchie, finalement ils préféreraient un Excel présenté différemment :
Chaque groupe dans la première colonne, répété autant de fois que de nombre utilisateur, avec le statut de celui-ci à côté.
Un truc comme cela.
Du coup je reprend mon script à \"0\" pour faire des compteurs, mais j'ai toujours ma problématique de comment exporter \"proprement\" mes donnée
Groupe1 User1 False
Groupe1 User2 False
Groupe1 User3 True
Groupe1 User4 True
Groupe1 User5 True
Groupe2 User1 True
Groupe2 User2 True
Groupe2 User3 True<br><br>Message édité par: clads92, à: 8/09/17 16:30
C'est nickel comme résultat !
Cependant j'aimerai approfondir ta solution, pourrais-tu quand tu as le temps stp m'expliquer
[code:1]$elementsdelavariable.CN | select @{n=\"Name\";e={\" \"}}, @{n=\"Enabled\";e={\" \"}}
$elementsdelavariable.CN | select @{n=\"Name\";e={\"groupe : \"}}, @{n=\"Enabled\";e={$_}}
$elementsdelavariable.CN | select @{n=\"Name\";e={\" \"}}, @{n=\"Enabled\";e={\" \"}}[/code:1]
Merci encore !
*******************************************************
Le besoin à \"évolué\" du côté de ma hiérarchie, finalement ils préféreraient un Excel présenté différemment :
Chaque groupe dans la première colonne, répété autant de fois que de nombre utilisateur, avec le statut de celui-ci à côté.
Un truc comme cela.
Du coup je reprend mon script à \"0\" pour faire des compteurs, mais j'ai toujours ma problématique de comment exporter \"proprement\" mes donnée
Groupe1 User1 False
Groupe1 User2 False
Groupe1 User3 True
Groupe1 User4 True
Groupe1 User5 True
Groupe2 User1 True
Groupe2 User2 True
Groupe2 User3 True<br><br>Message édité par: clads92, à: 8/09/17 16:30
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 8 ans 8 mois #24228
par Philippe
pour ta deuxième question d'évolution, il faut refaire ta boucle autrement !
et plus besoin de ligne vide !!
[code:1]#Boucle récupérant les membres du groupe selon la position de l'index
$objet = foreach ($elementsdelavariable in $DNdesGroupDistrib) {
$CNGroup = $elementsdelavariable.CN
Get-ADGroupMember -identity $elementsdelavariable.DistinguishedName -recursive | get-aduser | Sort Enabled, Name | select @{n=\"Groupe\";e={$CNGroup}}, Name, Enabled
}
$objet | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation
[/code:1]j'ai aussi enlevé le append pas utile ici sauf si tu ne veux pas effacé le contenu du CSV
j'ai sortie export de la boucle ce qui clarifie un peu le travail du script
Réponse de Philippe sur le sujet Re:Export-CSV ’ tableau et données
puisque dans un tableau je ne pouvais pas faire de saut de ligne, j'ai inséré des infos invisibles dans le tableau \"des espaces\" !!!Cependant j'aimerai approfondir ta solution, pourrais-tu quand tu as le temps stp m'expliquer
pour ta deuxième question d'évolution, il faut refaire ta boucle autrement !
et plus besoin de ligne vide !!
[code:1]#Boucle récupérant les membres du groupe selon la position de l'index
$objet = foreach ($elementsdelavariable in $DNdesGroupDistrib) {
$CNGroup = $elementsdelavariable.CN
Get-ADGroupMember -identity $elementsdelavariable.DistinguishedName -recursive | get-aduser | Sort Enabled, Name | select @{n=\"Groupe\";e={$CNGroup}}, Name, Enabled
}
$objet | Export-Csv -Delimiter \";\" -Path \"C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\" -Encoding UTF8 -Force -NoTypeInformation
[/code:1]j'ai aussi enlevé le append pas utile ici sauf si tu ne veux pas effacé le contenu du CSV
j'ai sortie export de la boucle ce qui clarifie un peu le travail du script
Connexion ou Créer un compte pour participer à la conversation.
- Pascal
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 26
- Remerciements reçus 0
il y a 8 ans 8 mois #24229
par Pascal
Réponse de Pascal sur le sujet Re:Export-CSV ’ tableau et données
Super, merci beaucoup !
ça marche nickel !
ça marche nickel !
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.043 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Export-CSV tableau et données