我目前正在使用以下代码查找给定 WinNT 域中的计算机,因为 WinNT 域不支持目录搜索器;
protected void ScanDomain(string domainName, bool isLocalDomain)
{
DirectoryEntry parentEntry = new DirectoryEntry();
if(isLocalDomain)
{
try
{
parentEntry.Path = "WinNT://" + domainName;
int numResults = 0;
foreach (DirectoryEntry childEntry in parentEntry.Children)
{
switch (childEntry.SchemaClassName)
{
case "Computer":
Debug.WriteLine(childEntry.Name);
numResults++;
break;
}
}
if (numResults == 0)
{
Debug.WriteLine("No results.");
}
}
catch (Exception ex)
{
Debug.WriteLine("Failed.");
}
}
else
{
//...
}
}
但是当使用此方法时,即使我知道域中的计算机比域中的计算机多,我也只收到 20 个计算机结果。
所以我只是想知道是否有人知道为什么会这样?
目录条目返回特定节点的子节点。这将不包含节点下的节点,意味着它的孙子。尝试也检查孙子,并获取 WIN NT 下的每个节点,这将起作用。
如果您需要代码片段,请告诉我。或者我这边缺少任何东西。