2011-09-18 3 views
0

사용자 정보가있는 XML 파일을 읽으려고하고 해당 정보를 기반으로 사용자를 Active Directory 그룹에 추가합니다. 지금까지 아무런 도움없이 오류 메시지를 찾고있었습니다. 여기Powershell이 ​​그룹에 사용자 추가

$MyUsers = [xml] (Get-Content e:\sample.xml) 
$a = 0 
$b = 0 
$c = 0 
$OUServer = "servername.domain.domain.edu" 
$AD3Server = "servername.domain.domain.edu" 
$DSSPath = "cn=Atl-Users,OU=HR,DC=domain,DC=domain,DC=edu" 
$AD3Path = "ou=Admin,DC=domain,DC=domain,DC=domain,DC=EDU" 
$connection = "LDAP://$OUServer/$DSSPath" 
    LOOP LOGIC 
    { 
    $CurUser = $MyUsers.clusters.cluster[$a].departments.department[$b].people.person[$c].loginid 
    $Group = [adsi]"$connection" 
    $User = "LDAP://$AD3Server/$CurUser,$AD3Path" 
    $Group.Add($User) 
    } 

내가 예외는 "1"인수 (들) "추가"를 호출 얻을 오류입니다 : 여기에 그룹 코드에 추가 사용자입니다. "서버가 R equest을 처리 할 내키지 (HRESULT 예외 : 0x80072035) "

도움을 주시면 감사하겠습니다!

+0

- 사용자가 $ CurUser 및 $ User의 내용을 게시 할 수 있습니까? –

답변

1

이것은 당신이 무엇을해야 :

$Connection = "LDAP://Server/CN=MyGoup,OU=MyOU,DC=MY,DC=CORP" 

$Group = [adsi] $Connection 

$User = "LDAP://Server/CN=MyUser,OU=MyOU,DC=MY,DC=CORP" 

$Group.Add($User) 

당신은 $ CurUser의 내용 및 $ 사용자 변수를 확인해야합니다.

1

다음은 작동하는 예제입니다. 아마도이를 적용 할 수 있습니다.

처음으로을 호출하면 커밋 일종의 setinfo()를 잊어 버릴 수 있습니다.

두 번째$CurUser의 값은 'CN=XXXXX'이어야합니다.

Clear-Host 

# Connecting without User/Password to Active Directory 
#$dn = [adsi] "LDAP://192.168.30.200:389/dc=dom,dc=fr" 
# Connecting with User/Password to Active Directory 
$dn = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://192.168.234.200:389/dc=dom,dc=fr","[email protected]","admin") 

# Creation of an OU 
$Monou = $dn.create("OrganizationalUnit", "ou=Monou") 
$Monou.put("Description", "Une description") 
$Res = $Monou.Setinfo() 

# Basic creation of a user 
$objUtilisateur = $Monou.create("inetOrgPerson", "cn=Marc Assin") 
$objUtilisateur.setinfo() 

$objUtilisateur.samaccountname = "Massin" 
$objUtilisateur.givenName = "Marc" 
$objUtilisateur.sn = "Assin" 
$objUtilisateur.userPrincipalName = "[email protected]" 
# Set the state of the account 
$objUtilisateur.pwdLastSet = 0 
$objUtilisateur.userAccountControl = 544 #512 
$objUtilisateur.SetInfo() 

# Creation of a group 
$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() 

# Adding user to a group 
$MonGroupe.add('LDAP://cn=Marc Assin,ou=Monou,dc=dom,dc=fr') 
$MonGroupe.setinfo() 
관련 문제