System.Management.Automation.Powershell:
Предоставляет методы, которые используются для создания конвейера команд и
вызывать эти команды синхронно или асинхронно в пределах
пространство выполнения. Этот класс также обеспечивает доступ к выходным потокам, которые
содержит данные, которые генерируются при вызове команд.
Важная часть - create a pipeline
. Что вы делаете, это создаете конвейер и добавляете к нему команды, используя ps.Commands.AddCommand
, и, как вы их добавили, с предоставленными вами дополнительными параметрами, вы получите ошибку, которую видите. Поскольку объект вывода New-DistributionGroup
не может быть передан в Add-DistributionGroupMember
и так далее.
Таким образом, первая команда в конвейере выполняется, а следующая не выполняется, потому что объект, к которому вы подключаетесь, несовместим (особенно после добавляемых вами параметров). Таким образом, группа рассылки создается, и когда вы это комментируете, добавляется только первый участник.
Одна вещь, которую вы можете попробовать, это использовать Powershell.AddScript
:
string script = "New-DistributionGroup -Name Test; Add-DistributionGroupMember -Identity Test -Member testuser1@somecompany.com";
ps.AddScript(script);
ps.Invoke();
В противном случае, я думаю, вам придется добавить команду, вызвать ее, очистить команду (ps.Commands.Clear()
) и добавить следующую команду, вызвать ее и т. Д.