![](/img/trans.png)
[英]How do I update the managedBy property on a computer object in Active Directory?
[英]Trying to pull 'ManagedBy' property from Computer object in AD
我在这里到那里都找到了一些示例,但是似乎找不到能够解决从计算机记录中检索Managedby属性的示例。 (我不知道用户名,但它存储在Managedby中)
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://"+lblDomain.Text);
DirectorySearcher search = new DirectorySearcher(searchRoot);
search.Filter = ("(objectClass=computer)");
search.PropertiesToLoad.Add("managedBy");
search.PropertiesToLoad.Add("distinguishedName");
search.PropertiesToLoad.Add("cn");
SearchResultCollection groups = search.FindAll();
foreach (SearchResult sr in groups)
{
if (sr.Properties.Contains("managedby"))
{
lblManagedBy.Text=(sr.Properties["managedBy"][0].ToString());
}
else
{
lblManagedBy.Text = "No owner specified in ManagedBy";
}
}
您的示例对我来说效果很好,因此需要检查一些内容。
1)lblDomain.Text中的域名正确吗? 您能否提供一个示例,说明其用途? 假名称可以。 2)您实际上是否拥有设置了“管理者”的计算机帐户? 默认情况下为空。
除此之外,我使用了确切的代码,并获取了我分配给计算机帐户的用户的DN,所以这可能与您的连接方式有关。
search.Filter = "(&(objectClass=computer)(cn=pcname))";
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://"+lblDomain.Text);
DirectorySearcher search = new DirectorySearcher(searchRoot);
search.Filter = "(&(objectClass=computer)(name=" + host + "))";
search.PropertiesToLoad.Add("managedBy");
search.PropertiesToLoad.Add("distinguishedName");
search.PropertiesToLoad.Add("cn");
SearchResultCollection groups = search.FindAll();
foreach (SearchResult sr in groups)
{
if (sr.Properties["managedBy"].Count > 0)
{
lblManagedBy.Text=(sr.Properties["managedBy"][0].ToString());
}
else
{
lblManagedBy.Text = "No owner specified in ManagedBy";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.