Exchange PowerShell:如何通过变量将多个值传递给 New-DistributionGroup 命令的 -Members(或 -ManagedBy)参数

Exchange PowerShell: How to pass multiple value, by variable, to -Members (or -ManagedBy) parameter of New-DistributionGroup command

我在 Exchange PowerShell 中完成了以下脚本,通过 powershell 在 exchenge 中添加了 1 个以上的新通讯组,并在其中一次性添加了多个成员:

# bulk_DistributionGroup1.ps1
# Connessione al server Exchange con remote PowerShell
Set-ExecutionPolicy RemoteSigned
$userCredential = Get-Credential -credential com_spoleto\rossetti.admin
$session = New-PSSession `
     -ConfigurationName  Microsoft.Exchange `
     -ConnectionUri http://srvexch13.comune.spoleto.local/PowerShell/ `
     -Authentication Kerberos `
     -Credential $userCredential `
      -AllowRedirection
Import-PSSession $session -AllowClobber -DisableNameChecking

# Importa il modulo active directory per usare comandi AD
Import-Module activedirectory

# Memorizzo i dati da bulk_DistributionGroup1.csv nella variabile $adDistGroup
$adDistGroup = Import-csv "E:\BATCH\Bulk_AD_MX\bulk_DistributionGroup1.csv"
# Memorizzo i dati da bulk_DistributionGroupmember1.csv nella variabile $adDistGroupMember
$adDistGroupMember = Import-csv "E:\BATCH\Bulk_AD_MX\bulk_DistributionGroupMember1.csv"

#Ciclo ogni riga che contiene i dettagli di un gruppo di distribuzione nel file CSV 
$members = ""
foreach ($adGroup in $adDistGroup)
{
    foreach ($member in $adDistGroupMember)
    {
        if ($adGroup.name -eq $member.groupName)
        {
            $members = $members + ", " + """" + $member.member + """"
        }
    }
    $members = $members.Substring(2)
    New-DistributionGroup `
        -Name $adGroup.name `
        -Alias $adGroup.alias `
        -CopyOwnerToMember `
        -ManagedBy $adGroup.managedBy `
        -MemberDepartRestriction closed `
        -MemberJoinRestriction closed `
        -Members ${members} `
        -ModerationEnabled $false `
        -OrganizationalUnit $adGroup.OU `
        -PrimarySmtpAddress $adGroup.primarySMTPAddress `
        -Type $adGroup.type
    $members = ""
}

# Rimuovo la sessione Exchange
Remove-PSSession $session
Set-ExecutionPolicy Unrestricted

和两个 .csv 文件,其中一个用于将值传递给脚本(查看随附的屏幕截图),但我的脚本无法运行并返回以下错误:

PS C:\WINDOWS\system32> E:\BATCH\Bulk_AD_MX\bulk_DistributionGroup1.ps1

ModuleType Version    Name                                ExportedCommands                                                                                                                                                                                                     
---------- -------    ----                                ----------------                                                                                                                                                                                                     
Script     1.0        tmp_gwg10zng.lky                    {Add-ADPermission, Add-AvailabilityAddressSpace, Add-ContentFilterPhrase, Add-DatabaseAvailabilityGroupServer...}                                                                                                    
Impossibile trovare il destinatario ""name1.surname1", "name2.surname2"". Assicurarsi che non siano presenti errori di digitazione o specificare un oggetto diverso.
    + CategoryInfo          : NotSpecified: (:) [New-DistributionGroup], ManagementObjectNotFoundException
    + FullyQualifiedErrorId : [Server=SRVEXCH13,RequestId=50679cad-e892-476e-a08c-f4e38475b793,TimeStamp=12/08/2021 07:24:56] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] 3CCBFD1E,Microsoft.Exchange.Management.RecipientTasks.NewDistributionGroup
    + PSComputerName        : srvexch13.xxxxxx.yyyyyyy.local
 
Impossibile trovare il destinatario ""name3.surname3", "name4.surname4"". Assicurarsi che non siano presenti errori di digitazione o specificare un oggetto diverso.
    + CategoryInfo          : NotSpecified: (:) [New-DistributionGroup], ManagementObjectNotFoundException
    + FullyQualifiedErrorId : [Server=SRVEXCH13,RequestId=2ddfac63-b7be-48b4-b076-083d54dc78af,TimeStamp=12/08/2021 07:24:56] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] EC351391,Microsoft.Exchange.Management.RecipientTasks.NewDistributionGroup
    + PSComputerName        : srvexch13.xxxxxx.yyyyyyy.local

请问有人可以帮帮我吗?

提前致谢。

$members 更改为成员名称数组,而不是单个字符串:

# define array
$members = @()

foreach ($adGroup in $adDistGroup)
{
    foreach ($member in $adDistGroupMember)
    {
        if ($adGroup.name -eq $member.groupName)
        {
            # add matching member names to the array
            $members += $member.member
        }
    }
    
    New-DistributionGroup `
        -Name $adGroup.name `
        -Alias $adGroup.alias `
        -CopyOwnerToMember `
        -ManagedBy $adGroup.managedBy `
        -MemberDepartRestriction closed `
        -MemberJoinRestriction closed `
        -Members ${members} `
        -ModerationEnabled $false `
        -OrganizationalUnit $adGroup.OU `
        -PrimarySmtpAddress $adGroup.primarySMTPAddress `
        -Type $adGroup.type
    # Clear array by creating a new empty one
    $members = @()
}