2012-12-10 71 views
1

帮助我试图从本地组中删除域用户,每次我尝试获取域用户的本地组时,该收集都是空的。如何从我的机器上的任何本地组中删除域用户。下面是我使用的代码,它对本地用户来说工作正常,但正如上面在域用户中所说的那样,它说他们没有本地组。我知道域用户位于本地计算机上的用户和IIS_USRS组中。从本地组中删除域用户

using (PrincipalContext localContext = new PrincipalContext(ContextType.Machine)) 
      { 
       try 
       { 
        foreach (GroupPrincipal principal in user.GetGroups(localContext)) 
        { 
         principal.Members.Remove(user); 
         principal.Save(localContext); 
         principal.Dispose(); 
        } 
       } 
+0

如果使用.NET Framework 3+,见[这个问题](http://stackoverflow.com/questions/2143052/adding-and-removing-users-from-active-directory-groups-in-净) –

回答

0

为了得到这个工作,我最后不得不做的事。

using (PrincipalContext localContext = new PrincipalContext(ContextType.Machine)) 
      { 
       try 
       { 
        foreach (string g in groups) 
        { 
         using (GroupPrincipal localGroup = GroupPrincipal.FindByIdentity(localContext, IdentityType.Name, g)) 
         { 
          foreach (Principal groupUser in localGroup.GetMembers().Where(groupUser => user.Name.Equals(groupUser.Name))) 
          { 
           localGroup.Members.Remove(groupUser); 
           localGroup.Save(); 
          } 
         } 
        } 
       }