Se rappeler que ForEach ne renvoie pas des objets à la canalisation où le ForEach-Objet fait.
Vous pouvez work-around le problème si la boucle de ForEach est exécutée dans un bloc de manuscrit. Bien que la conversion en ForEach-Objet soit généralement plus facile sur les yeux.
Obtenir-Contenu c:\tmp\GetADAccountInfos\Users.txt | ForEach-Objet {
Obtenir-QADUser le _ de $ | Choisir-Objet SamAccountName, handicapé, description, MemberOf
} | Exporter-Csv c:\tmp\query.csv
Vous pourriez encore avoir le même problème avec System.String []. Si vous vous devez enseigner à picoseconde comment traiter la rangée. Une option est ceci :
Obtenir-Contenu c:\tmp\GetADAccountInfos\Users.txt | ForEach-Objet {
Obtenir-QADUser le _ de $ | Choisir-Objet SamAccountName, handicapé, description,
@ {e= de n='MemberOf'; {« $ ($_.MemberOf) »}}
} | Exporter-Csv c:\tmp\query.csv
Il emploie le séparateur de champ de rendement de défaut, un espace, pour joindre la rangée de corde (System.String []) ainsi vous pouvez voir le contenu. Vous pouvez dépasser le caractère employé pour se joindre en plaçant une valeur pour la variable réservée $OFS (par exemple $OFS = « ; ").
HTH
Chris