将OU的所有成员移动到新的分发组

时间:2017-04-04 15:52:48

标签: windows powershell exchange-server

我正在尝试设置一些新的通讯组,并希望将它们填入特定OU的所有成员。

$allMemberofTestOU = get-qadgroup $ouNameT | get-qadmemberof

但是我的交换管理shell不知道这个cmdlet。我不知道为什么。

我不知道如何做到这一点,我想 - 简单,事情。

长版:

我有许多名为OU-ProgramName - **的OU,并希望将所有这些成员移动到新的通讯组名称VL-ProgramName - **。

一开始,我从包含所有程序名的文本文件中获取内容,并希望通过ForEach循环(工作)。

问题:

我需要帮助获取OU的所有成员并将其复制到新的通讯组。

德国最诚挚的问候

编辑:

我建立了另一种方式来完成这项工作。我是PowerShell的新手,所以我不知道我是不是以正确的方式做到了。

 $OU = "CN=*-$ouName,OU=Prodfarm-Anwendungen,OU=LRA-CTRX,DC=kreis-gr,DC=de”                        
 $AD = New-Object System.DirectoryServices.DirectorySearcher([ADSI]"LDAP://$OU")                                         

 # Testfarm

    $newGroupT = "VLP_"+ $ouName + " Test C65"
        $Users = $AD.FindAll() | %{$_.Properties.samaccountname} | Sort-Object 
            $Users | New-Distributiongroup -Name $newGroupT -Members $_

1 个答案:

答案 0 :(得分:0)

所有Get-QAD*个CMDLets都是 Quest ActiveRoles Management Shell 插件的一部分。在Quest被戴尔收购之前,有一个免费版本。免费版是一些博客文章引用它们的原因。但是,合并后,免费版本从Quest / Dell网站上撤下,您现在可以直接从Dell / Quest here购买此插件。

所以你的问题可以通过两种可能的解决方案来解决:

1。)如果您已经安装了该插件,那么您最初通过以下方式添加了Quest ActiveRoles AD管理管理单元:

Add-PSSnapin Quest.ActiveRoles.ADManagement

2.)未安装Quest ActiveRoles AD管理管理单元。如果您想使用上一个已知的“免费”版本,您可以在互联网上找到它,例如here。请注意,没有人知道这是否是原始版本!另请注意,免费版本是一个非常旧的版本,因为当前的版本是1.7版本。因此,您也可以从Quest / Dell购买新的最新产品。

<强>更新

这是我正在使用的脚本add all users from a given OU to a given AD group。我通过Windows Scheduler和任务帐户运行它。运行后,它会将给定OU中的所有用户添加到给定的AD组,这意味着它会自动更新组。您可以调整它以满足您的需求。它有点高级编码,因为如果出现故障会发出错误电子邮件,写入日志并使用函数。