【问题标题】:How to add various groups to the computers in OU?OU中的计算机如何添加各种组?
【发布时间】:2013-11-20 16:31:50
【问题描述】:
我需要将各种应用程序组添加到 OU 中的计算机,稍后将推出。在AD中,我去OU,右键单击相应的计算机并单击属性,然后转到“成员”选项卡,然后添加各个组。
如何使用 PowerShell 自动执行这些步骤,以便将这些组应用于该 OU 中的所有计算机?
【问题讨论】:
标签:
powershell
active-directory
active-directory-group
【解决方案1】:
import-module ActiveDirectory
$allComputers = @()
$ADgroup = "Computer Policy Application Group"
$theOU = [ADSI]"LDAP://OU=AnOU,DC=some,DC=test,DC=com"
foreach ($item in $theOU.psbase.Children) {
if ($item.ObjectCategory -like '*computer*') {
$allComputers += $item.Name
}
}
foreach ($pc in $allComputers) {
Add-ADGroupMember $ADgroup $pc
}
当然,您可以添加更多组,或者设置一组组并在添加时迭代它...如果计算机已经是组的一部分,这将引发很多错误,顺便说一句.
【解决方案2】:
如果您使用的是 server2008 或更新版本(或安装了所需的组件),这是我找到的最简单的解决方案。
$groupList=@("group1","group2","group3")
foreach ($Comp in (Get-AdComputer -server $ADServer -searchBase "OU=computers,DC=company,DC=com" -searchscope oneLevel")) {
foreach ($Group in $groupList) { Add-ADGroupMember -Identity $Group -Members $Comp -Server $ADServer }
}
确保使用您希望添加的组的 samaccountnames 数组填充 $groupList 变量,并将“OU=computers,DC=company,DC=com”替换为包含您希望添加权限的计算机。
【解决方案3】:
使用 ActiveDirectory 模块,您可以使用 Add-ADPrincipalGroupMember 或 Add-ADGroupMember。
前者“将成员添加到一个或多个 Active Directory 组”,而后者“将一个或多个成员添加到 Active Directory 组”。