Question [Résolu] Export-CSV tableau et données

Plus d'informations
il y a 8 ans 8 mois #24202 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

Fichier attaché :
Correspond à OutFile
Fichier attaché :
Correspond à Export-CSV
Fichier attaché :
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

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

Plus d'informations
il y a 8 ans 8 mois #24215 par Philippe
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 :blush:

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 :evil:

une façon de truandé export-csv :
[code:1]#Récupération des DN des groupes de distributions
$DNdesGroupDistrib = Get-ADGroup -Filter { GroupCategory -eq \&quot;Distribution\&quot; } -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=\&quot;Name\&quot;;e={\&quot; \&quot;}}, @{n=\&quot;Enabled\&quot;;e={\&quot; \&quot;}} | Export-Csv -Delimiter \&quot;;\&quot; -Path \&quot;C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\&quot; -Encoding UTF8 -Force -NoTypeInformation -Append
$elementsdelavariable.CN | select @{n=\&quot;Name\&quot;;e={\&quot;groupe : \&quot;}}, @{n=\&quot;Enabled\&quot;;e={$_}} | Export-Csv -Delimiter \&quot;;\&quot; -Path \&quot;C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\&quot; -Encoding UTF8 -Force -NoTypeInformation -Append
$elementsdelavariable.CN | select @{n=\&quot;Name\&quot;;e={\&quot; \&quot;}}, @{n=\&quot;Enabled\&quot;;e={\&quot; \&quot;}} | Export-Csv -Delimiter \&quot;;\&quot; -Path \&quot;C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\&quot; -Encoding UTF8 -Force -NoTypeInformation -Append
#$DNdesGroupDistrib[$indexGroup].CN | Out-File -Width 70 \&quot;C:\logs scripts\ExtractGroup.csv\&quot; -append utf8
Get-ADGroupMember -identity $elementsdelavariable.DistinguishedName -recursive | get-aduser | Sort Enabled | Select Name, Enabled | Export-Csv -Delimiter \&quot;;\&quot; -Path \&quot;C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\&quot; -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.

Plus d'informations
il y a 8 ans 8 mois #24224 par Pascal
doublon<br><br>Message édité par: clads92, à: 8/09/17 11:33

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

Plus d'informations
il y a 8 ans 8 mois #24225 par Pascal
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=\&quot;Name\&quot;;e={\&quot; \&quot;}}, @{n=\&quot;Enabled\&quot;;e={\&quot; \&quot;}}
$elementsdelavariable.CN | select @{n=\&quot;Name\&quot;;e={\&quot;groupe : \&quot;}}, @{n=\&quot;Enabled\&quot;;e={$_}}
$elementsdelavariable.CN | select @{n=\&quot;Name\&quot;;e={\&quot; \&quot;}}, @{n=\&quot;Enabled\&quot;;e={\&quot; \&quot;}}[/code:1]

Merci encore !

*******************************************************

Le besoin à \&quot;évolué\&quot; 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 à \&quot;0\&quot; pour faire des compteurs, mais j'ai toujours ma problématique de comment exporter \&quot;proprement\&quot; 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.

Plus d'informations
il y a 8 ans 8 mois #24228 par Philippe

Cependant j'aimerai approfondir ta solution, pourrais-tu quand tu as le temps stp m'expliquer

puisque dans un tableau je ne pouvais pas faire de saut de ligne, j'ai inséré des infos invisibles dans le tableau \&quot;des espaces\&quot; !!!


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=\&quot;Groupe\&quot;;e={$CNGroup}}, Name, Enabled
}
$objet | Export-Csv -Delimiter \&quot;;\&quot; -Path \&quot;C:\Users\admpss\Desktop\ExtractGroup+User+Enabled.csv\&quot; -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.

Plus d'informations
il y a 8 ans 8 mois #24229 par Pascal
Super, merci beaucoup !
ça marche nickel !

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

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