2010-12-22 2 views

답변

5

Erm에는 SPGroup.AddUsers ("myAdGroup") 메서드가 없습니다. 해당 형식의 AddUser() 메소드도 없습니다.

SPGroup g = web.AssociatedMemberGroup; 
SPUser u = web.EnsureUser("DOMAIN\\myADgroup"); 
g.AddUser(u); 

EnsureUser 비트가 AD 그룹이 SPWeb의 사용자로 추가되어 있는지 확인합니다, 그래서 당신은 다음 권한을 할당 할 수 있습니다

당신이 노력했다.

+0

네, EnsureUser를 시도했지만 작동하지 않았습니다. 다시 찾을 수없는 사용자가 있습니다. – user484483

+0

흠. 나는 광고에 대한 전문가는 아니지만, EnsureUser가 사용자를 찾을 수없는 상태로 돌아 오는 경우 그룹 이름이 AD에서 잘못되었거나 다를 것이라고 제안합니다.나는 그 코드를 테스트했고,이 기계에서 작동했다. 광고에서 이름을 확인할 가치가 있으며 이름과 도메인을 지정하고 있는지 확인하십시오. 또한 이름 ("\\")에 이스케이프 처리 된 슬래시 –

1

안녕하세요, AD 그룹을 추가 할 수있는 방법이 없습니다.

그룹을 먼저 만들고 그 그룹에 사용자를 추가해야합니다.

using (SPSite spSite = new SPSite("http://localhost")) 
{ 
    using (SPWeb spWeb = spSite.OpenWeb()) 
    { 

     SPGroupCollection spGrps = spWeb.SiteGroups; 
     SPUser uGrpOwner = spWeb.CurrentUser; 
     SPUser uGrpDefMember = spWeb.CurrentUser; 
     string sGrpName = "GrupeName"; 
     spGrps.Add(sGrpName, uGrpOwner, uGrpDefMember, "Decription"); 

     SPGroup spGrp = spGrps[sGrpName]; 

     List<SPUser> spUsersFromAD = YouFunctionGetUserFromAD(); 

     foreach(SPUser spUser in spUsersFromAD){ 
      spGrp.AddUser(spUser); 
     } 
     spWeb.Update(); 
    } 
} 
1

이것은 앤디 굽기의 대답에서 후속이다

$web = Get-SPWeb http://localhost 
$web.EnsureUser("domain\test group") 

이 작동하지 않았다, 수수께끼 된 : PowerShell을에서

내가 처음에 다음과 같은 시도했다.

좀 더 실험과 나는 다음과 같은 작업 (그룹에 내장되어 고급 사용자) 한 발견 : 다음 나는 (PowerShell에서 표시 이름 별칭으로) 이름에 다른 값을 한 것으로 나타났습니다

$web.EnsureUser("builtin\power users") 
$web.EnsureUser("power users") 
$web.EnsureUser("test group") 

을 - Active Directory에서 '그룹 이름'과 '그룹 이름 (Windows 2000 이전)'에 대해 다른 값을 사용 했음이 밝혀졌습니다.

그룹 이름 자체는 작동하지만 도메인 접두사는 Windows 2000 이전 버전 이름을 사용해야했습니다. 이와

, 나는 일에 다음을 얻을 수있었습니다 :

$web.EnsureUser("domain\pre2000 test group") 

그래서, 당신은 여전히 ​​문제가 AD에서이 그룹 이름 간의 일관성을 검사가있는 경우.

0

AD 그룹이있는 SPWeb.EnsureUser를 호출 할 때도 문제가 발생했습니다. 내 경우에 문제의 그룹이 기본 sAMAccountName과 다른 표시 이름을 가지고 있기 때문에 혼란이있었습니다. 표시 이름 대신 sAMAccountName으로 EnsureUser를 호출하면 문제가 분류됩니다.

관련 문제