Question
Foreach et Export-Csv incompatible
- oborgeaud@gmail.com
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 9 ans 9 mois #21901
par oborgeaud@gmail.com
Foreach et Export-Csv incompatible a été créé par oborgeaud@gmail.com
Bonjour à tous !
Si fière de mon script PS qui fonctionne parfaitement, j'ai voulu lui ajouter une instruction pour enregistrer le résultat dans un fichier, et paf, ne fonctionne pas.
Ce que je fais ici, c'est lister des groupes de sécurité, et ensuite les machines s'y trouvant.
Import-Module ActiveDirectory
$Groups = Get-ADGroup -Filter '*' | select-object * | where-object {$_.distinguishedname -like \"*,OU=Software,OU=Engineering,OU=Global,OU=ADMCV,DC=adacv,DC=ad,DC=etat-libre-geneve,DC=ch\"}
Foreach($G In $Groups)
{
Write-Host $G.Name
$Members = Get-ADGroupMember $G.Name -Recursive
Write-Host $Members.count
$G.Members
}
Le résultat est pleinement dans mes espérances:
SFT_Microsoft_Visio_2010_Std
844
SFT_Microsoft_Project_2010_Pro
14
SFT_Microsoft_OneNote_2010
89
SFT_Microsoft_Access_2010
824
SFT_Microsoft_Outlook_2010
3
SFT_Microsoft_Publisher_2010
17
Mais lorsque je rajoute
Import-Module ActiveDirectory
$Groups = Get-ADGroup -Filter '*' | select-object * | where-object {$_.distinguishedname -like \"*,OU=Software,OU=Engineering,OU=Global,OU=ADMCV,DC=adacv,DC=ad,DC=etat-libre-geneve,DC=ch\"}
Foreach($G In $Groups)
{
Write-Host $G.Name
$Members = Get-ADGroupMember $G.Name -Recursive
Write-Host $Members.count
$G.Members
} | Export-Csv \"C:\temp\SFT_Report.csv\" -NoTypeInformation
J'ai l'erreur
[b]PS C:\Users\v7h2ni> C:\Users\v7h2ni\Documents\Sans titre3.ps1
Au caractère C:\Users\v7h2ni\Documents\Sans titre3.ps1:9 : 3
+ } | Export-Csv \"C:\temp\SFT_Report.csv\" -NoTypeInformation
+ ~
Un élément de canal vide n’est pas autorisé.
+ CategoryInfo : ParserError: (
[], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement
[/b]
Naturellement, j'ai essayé pas mal de choses, mais sans solution. Si quelqu'un a une idée, c'est volontier.
Salutations,
Olivier
Si fière de mon script PS qui fonctionne parfaitement, j'ai voulu lui ajouter une instruction pour enregistrer le résultat dans un fichier, et paf, ne fonctionne pas.
Ce que je fais ici, c'est lister des groupes de sécurité, et ensuite les machines s'y trouvant.
Import-Module ActiveDirectory
$Groups = Get-ADGroup -Filter '*' | select-object * | where-object {$_.distinguishedname -like \"*,OU=Software,OU=Engineering,OU=Global,OU=ADMCV,DC=adacv,DC=ad,DC=etat-libre-geneve,DC=ch\"}
Foreach($G In $Groups)
{
Write-Host $G.Name
$Members = Get-ADGroupMember $G.Name -Recursive
Write-Host $Members.count
$G.Members
}
Le résultat est pleinement dans mes espérances:
SFT_Microsoft_Visio_2010_Std
844
SFT_Microsoft_Project_2010_Pro
14
SFT_Microsoft_OneNote_2010
89
SFT_Microsoft_Access_2010
824
SFT_Microsoft_Outlook_2010
3
SFT_Microsoft_Publisher_2010
17
Mais lorsque je rajoute
Import-Module ActiveDirectory
$Groups = Get-ADGroup -Filter '*' | select-object * | where-object {$_.distinguishedname -like \"*,OU=Software,OU=Engineering,OU=Global,OU=ADMCV,DC=adacv,DC=ad,DC=etat-libre-geneve,DC=ch\"}
Foreach($G In $Groups)
{
Write-Host $G.Name
$Members = Get-ADGroupMember $G.Name -Recursive
Write-Host $Members.count
$G.Members
} | Export-Csv \"C:\temp\SFT_Report.csv\" -NoTypeInformation
J'ai l'erreur
[b]PS C:\Users\v7h2ni> C:\Users\v7h2ni\Documents\Sans titre3.ps1
Au caractère C:\Users\v7h2ni\Documents\Sans titre3.ps1:9 : 3
+ } | Export-Csv \"C:\temp\SFT_Report.csv\" -NoTypeInformation
+ ~
Un élément de canal vide n’est pas autorisé.
+ CategoryInfo : ParserError: (
+ FullyQualifiedErrorId : EmptyPipeElement
[/b]
Naturellement, j'ai essayé pas mal de choses, mais sans solution. Si quelqu'un a une idée, c'est volontier.
Salutations,
Olivier
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 9 ans 9 mois #21908
par Philippe
Réponse de Philippe sur le sujet Re:Foreach et Export-Csv incompatible
salut oborgeaud et bienvenue
peut tu aussi nous aider en mettant les balises code sur les parties scripts de ton message, stp.
Ca nous facilite le travail de lecture de ton code !
pour ça tu surligne ton code et tu clique sur le bouton code au dessus de la zone de saisi du texte
->tu as la possibilité d’éditer (modifier) ton premier post
merci
après tu peut remplacé les write-host par des Write-output dans ta boucle et le rajouter devant $G.Members
ça devrait le faire
PS : grosse correction, ma réponse ne fonctionne pas pour deux raisons :
- tu doit utilisé l'autre écriture de foreach pour utilisé le pipeline soit :
[code:1]$Groups | Foreach {
Write-output $_.Name
$name = $_
$Members = Get-ADGroupMember $Name -Recursive
Write-output $Members.count
Write-output $Members
} | Export-Csv \"C:\temp\SFT_Report.csv\" -NoTypeInformation[/code:1]
- deuxième problème, le résultat renvoyé n'est pas un tableau donc erreur mais dans le contenue du fichier !!!
il faut plus d'info pour une aide sur dernier point !<br><br>Message édité par: 6ratgus, à: 7/06/16 17:44
peut tu aussi nous aider en mettant les balises code sur les parties scripts de ton message, stp.
Ca nous facilite le travail de lecture de ton code !
pour ça tu surligne ton code et tu clique sur le bouton code au dessus de la zone de saisi du texte
->tu as la possibilité d’éditer (modifier) ton premier post
merci
après tu peut remplacé les write-host par des Write-output dans ta boucle et le rajouter devant $G.Members
ça devrait le faire
PS : grosse correction, ma réponse ne fonctionne pas pour deux raisons :
- tu doit utilisé l'autre écriture de foreach pour utilisé le pipeline soit :
[code:1]$Groups | Foreach {
Write-output $_.Name
$name = $_
$Members = Get-ADGroupMember $Name -Recursive
Write-output $Members.count
Write-output $Members
} | Export-Csv \"C:\temp\SFT_Report.csv\" -NoTypeInformation[/code:1]
- deuxième problème, le résultat renvoyé n'est pas un tableau donc erreur mais dans le contenue du fichier !!!
il faut plus d'info pour une aide sur dernier point !<br><br>Message édité par: 6ratgus, à: 7/06/16 17:44
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.037 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Foreach et Export-Csv incompatible