我创建了一个脚本,它将为OU查询AD,将它们输出到文件,然后从文件中创建一个组,对新组名进行少量修改。这部分的作用是代码:
## Load Quest ActiveRoles ADManagement PSSnapin if not already loaded
if ((Get-PSSnapin -Name "Quest.ActiveRoles.ADManagement" -ErrorAction SilentlyContinue) -eq $null) {
Add-PsSnapin "Quest.ActiveRoles.ADManagement" }
cd \
cls
$Type = "Security"
$Scope = "Global"
$Domain = "abc.org"
## Get Organizational Units
Get-QADObject -Type OrganizationalUnit `
| Select-Object Name, Path, DN, CanonicalName ` | Export-Csv -Path "c:\scripts\test\ou.csv" -NoTypeInformation
## Create Security Groups from Organizational Units
$Pre = "123abc"
$ou = "ou=123abc,ou=Groups,ou=User Accounts,dc=abc,dc=org"
Import-Csv -Path "c:\scripts\test\ou.csv" | foreach {New-QADGroup -name ($Pre+$_.name) -parent $ou -sam ($Pre+$_.name)}
我遇到的问题是这个问题。如何从每个OU获取用户对象并将它们放在单独的csv文件中。我有一些适用于单个OU的代码。
$OuDomain = "OU=123abc,OU=Users,OU=User Accounts,DC=abc,DC=org"
Get-QADUser -SizeLimit 0 -searchRoot $OuDomain `
| Select-Object name, SamAccountName, UserPrincipalName `
| Export-Csv -Path "c:\scripts\test\123abc.csv" -NoTypeInformation
之后,我应该能够将用户添加到新组中。
答案 0 :(得分:0)
首先如果您正在使用PowerShell V2.0,则可以在W2K8R2上使用Microsoft ActiveDirectory模块。
Add-ADGroupMember -Identity MonGroupe -Member massin
第二次一旦您从OU获得用户,您将对distinguishedName
属性感兴趣。您只需将每个用户的distinguishedName分配给新组的属性member
。
我没有安装Quest ADManagement PSSnapin,所以这里有一个简单的ADSI示例:
# Starting OU
$MonOU = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://192.168.234.200:389/ou=Monou,dc=dom,dc=fr","administrateur@dom.fr","admin")
# Group creation
$MonGroupe = $Monou.Create("Group", "cn=MonGroupe")
$ADS_GROUP_TYPE_GLOBAL_GROUP = 0x00000002
$ADS_GROUP_TYPE_SECURITY_ENABLED = 0x80000000
$groupeType = $ADS_GROUP_TYPE_SECURITY_ENABLED -bor $ADS_GROUP_TYPE_GLOBAL_GROUP
$MonGroupe.put("groupType",$groupeType)
$MonGroupe.setinfo()
# Add a user to the group
$MonGroupe.add('LDAP://cn=Marc Assin,ou=Monou,dc=dom,dc=fr')
$MonGroupe.setinfo()
# List members of a group
$UnGroupe = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://192.168.234.200:389/cn=Mongroupe,ou=Monou,dc=dom,dc=fr","administrateur@dom.fr","admin")
$Membres = $UnGroupe.Member
$Membres