Вспомните что ForEach не возвращает предметы к трубопроводу где ForEach-Предмет делает.
Вы можете work-around проблема если петля ForEach исполнена внутри блок сценария. Хотя преобразование к ForEach-Предмету вообще легке на глазах.
Получать-Содержание c:\tmp\GetADAccountInfos\Users.txt | ForEach-Предмет {
Получите-QADUser _ $ | Выбирать-Предмет выведенное из строя SamAccountName, описание, MemberOf
} | Ехпортируйте-Csv c:\tmp\query.csv
Вы могли все еще иметь такую же проблему с System.String []. Если вам вы нужно научить PS как общаться с блоком. Один вариант это:
Получать-Содержание c:\tmp\GetADAccountInfos\Users.txt | ForEach-Предмет {
Получите-QADUser _ $ | Выбирать-Предмет выведенное из строя SamAccountName, описание,
@ {e= n='MemberOf'; {«$ ($_.MemberOf)»}}
} | Ехпортируйте-Csv c:\tmp\query.csv
Он использует сепаратор поля выхода невыполнения обязательства, космос, для того чтобы соединить блок шнура (System.String []) поэтому вы можете увидеть содержание. Вы можете отвергнуть характер используемый для того чтобы соединить путем устанавливать значение для сдержанной перемеююого $OFS (например $OFS = «; ").
HTH
Крис