首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectoryEntry刷新其他问题

DirectoryEntry刷新其他问题
EN

Stack Overflow用户
提问于 2017-06-23 17:23:00
回答 1查看 287关注 0票数 2

在代码中,我使用此代码将计算机帐户移动到其他active directory OU中。

代码语言:javascript
复制
DirectoryEntry eLocation = new DirectoryEntry("LDAP://" + DevicePath, ADAdmin, ADPass);
DirectoryEntry nLocation = new DirectoryEntry("LDAP://" + ADMoveOU, ADAdmin, ADPass);

eLocation.MoveTo(nLocation);
eLocation.CommitChanges();
eLocation.RefreshCache();
nLocation.Close();
eLocation.Close();

从这里,代码返回一切正常的计算机移动到另一个OU。但是,我现在需要刷新用户使用此代码的数据。

代码语言:javascript
复制
DirectoryEntry Entry = new DirectoryEntry(Domain, ADUSER, ADpassword);
Entry.RefreshCache();
DirectorySearcher Search = new DirectorySearcher(Entry);
Search.Filter = string.Format("(&(objectCategory=computer)(cn={0}))", DeviceName);

这是一个问题,这段代码告诉我计算机没有移动,实际上,我必须在移动和刷新之间等待大约30秒,才能获得正确的active directory数据。

所以,我不明白怎么回事。我甚至刷新了缓存,为什么移动结果没有在移动后立即刷新?

EN

回答 1

Stack Overflow用户

发布于 2019-09-11 03:43:07

我自己现在也遇到了这个问题-据我所知,Active Directory本身似乎需要一些时间来处理将对象从一个容器/OU移动到另一个容器/OU的过程-这种更改似乎至少会在Active Directory服务器本身上持续几秒钟。

一种解决办法是向对象添加一个自定义字段,以指示其存储位置-然后使用该字段构建查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44717760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档