首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Exchange PowerShell:如何通过变量将多个值传递给-Members -DistributionGroup命令的-ManagedBy(或-ManagedBy)参数

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

Stack Overflow用户
提问于 2021-08-12 07:30:00
回答 1查看 181关注 0票数 0

我在Exchange中执行了以下脚本,在PowerShell中添加了1个以上的新通讯组,并在其中添加了多个成员,所有这些操作都是一次性完成的:

代码语言:javascript
运行
复制
# 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文件,其中一个用于将值传递给脚本(查看附加的屏幕截图),但我的脚本无法正常工作,返回以下错误:

代码语言:javascript
运行
复制
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

请问有没有人可以帮我?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 09:17:35

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

代码语言:javascript
运行
复制
# 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 = @()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68753299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档