powershell将用户批量添加为Exchange分发组的所有者

时间:2017-06-01 22:43:37

标签: powershell exchange-server

我需要添加批量添加用户作为“所有者”(由...管理)到Exchange 2010环境中的所有通讯组。我最初的想法是通过powershell将当前所有者的所有发行版中的.csv拉出来,然后在.csv中添加用户,然后通过powershell导入。

我不确定如何做到这一点。大约有700个发行版,这个人需要成为他们的“拥有者”。 谢谢

3 个答案:

答案 0 :(得分:1)

设置DG所有者的命令非常简单

Set-DistributionGroup -Identity <GroupName> -ManagedBy <Existing Owner, New Owner>

这篇MS文章提供了有关更改所有者的足够详细信息

https://technet.microsoft.com/en-us/library/dd638201(v=exchg.141).aspx

    Get-DistributionGroup | Export-csv -Path "C:\filename.csv" -NoTypeInformation

    $Distribution_Groups = import-csv "C:\filename.csv"
    $NewOwner = "owner@contoso.com"

    foreach ($Group in $Distribution_Groups){
        Set-DistributionGroup -Identity $Group.alias -ManagedBy @{Add=$NewOwner} 
     }

<强>解释

第一行将获取所有DG并将它们放入CSV文件

循环遍历CSV并使用别名值作为set命令的标识符。

ManagedBy属性是MultiValue,这意味着我们可以使用&#39;添加&#39;和&#39;删除&#39;更新。

我无法访问测试Exchange环境,因此请务必正确测试。

答案 1 :(得分:1)

通过http://www.o-xchange.com/2014/10/add-user-as-manager-of-distribution.html

我最终做的是拉出我需要的所有发行组的列表。然后按照http://www.o-xchange.com/2014/10/add-user-as-manager-of-distribution.html

将用户添加为通讯组的管理员,而无需通过Exchange PowerShell删除现有管理员。 场景:将用户添加为通讯组的管理员,而无需通过Exchange PowerShell删除现有管理器。如果要将Set-DistributionGroup命令与-managedby开关一起使用,它将删除现有管理器并设置您在交换机中指定的管理器。要将用户jdoe1添加为管理员,而不是从通讯组“HQ-All Employees&#39;”中删除现有管理器,请在下面运行以下PowerShell命令。

$Group = Get-DistributionGroup "HQ-All Employees"
$Managers = $Group.ManagedBy
$User = Get-User  jdoe1
$Managers += $User 
Set-DistributionGroup "HQ-All Employees" -Managedby $Managers -
BypassSecurityGroupManagerCheck

Excel Magic:如果您在Excel A中有一个装满组的Excel工作表,并希望将jdoe1作为管理器添加到每个组中,请复制下面的Excel公式并将其向下拖动以查看整个组列表。每个单元格的值将创建每个组所需的Powershell命令。复制单元格(单元格值)并将其粘贴到Exchange PowerShell中。每个命令用a分隔;因此,所需的5个PowerShell命令将适合一个Excel单元格,并适合每个组的一个PowerShell行。

="$Group= Get-distributiongroup """&A2&"""; $Managers= $group.managedby; 
$User=Get-User jdoe1;$Managers+=$User;Set-DistributionGroup """&A2&""" -
managedby $Managers -BypassSecurityGroupManagerCheck"

答案 2 :(得分:1)

类似于SDBaret,仅使用.Name属性:

$DistGroups = (Get-DistributionGroup).name

ForEach ($DistGroup in $DistGroups){
    Set-DistributionGroup -identity $DistGroup -ManagedBy @{Add="jsmith@contoso.com"}
}