我需要将各种应用程序组添加到OU中的计算机,稍后将推出。在AD中,我转到OU,右键单击相应的计算机并单击属性,然后转到“成员”选项卡,然后添加各个组。
如何使用PowerShell自动执行这些步骤,以便将这些组应用于该OU中的所有计算机?
答案 0 :(得分:0)
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
}
然后当然,你可以添加更多的组,或者设置一个组的数组,并在你去的时候迭代它们...如果计算机已经是这个组的一部分,这将会引发很多错误
答案 1 :(得分:0)
如果您使用的是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”替换为包含以下内容的OU的LDAP路径您希望添加权限的计算机。
答案 2 :(得分:0)
使用ActiveDirectory模块,您可以使用Add-ADPrincipalGroupMember或Add-ADGroupMember。
前者'将成员添加到一个或多个Active Directory组',而后者'将一个或多个成员添加到Active Directory组'。