Dar*_*din 3 c# active-directory directoryentry
我正在尝试为指定OU中的每个AD用户修改配置文件/主目录/主驱动器设置,
我下面有一些非常基本的代码应该可以实现这一壮举,但是却抛出以下异常:
请求的操作不满足与该对象的类别相关联的一个或多个约束。
有没有人遇到过这个问题,如果有,有办法解决吗?
谢谢。
DirectoryEntry Entry = new DirectoryEntry("LDAP://OU=Company,DC=corp,DC=Placeholder,DC=com", null, null, AuthenticationTypes.Secure);
DirectorySearcher Searcher = new DirectorySearcher(Entry);
Searcher.SearchScope = SearchScope.Subtree;
Searcher.PropertiesToLoad.Add("sAMAccountName");
Searcher.Filter = "(&(objectClass=user)(objectCategory=person))";
foreach (SearchResult AdObj in Searcher.FindAll())
{
Entry.InvokeSet("HomeDirectory", @"\\winfileserver\" + Convert.ToString(AdObj.Properties["sAMAccountName"][0]));
Entry.InvokeSet("HomeDrive", "H");
Entry.CommitChanges();
}
catch (Exception ex)
{
richTextBox1.Text += ex.Message;
}
Run Code Online (Sandbox Code Playgroud)
也没有理由调用InvokeSet。这是执行此操作的正确方法:
foreach (SearchResult AdObj in Searcher.FindAll()) {
DirectoryEntry user = AdObj.GetDirectoryEntry();
user.Properties["HomeDirectory"].Value = @"\\winfileserver\" + Convert.ToString(AdObj.Properties["sAMAccountName"][0]);
user.Properties["HomeDrive"].Value = "H";
user.CommitChanges();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |