首先,我没有安装 Active Directory PowerShell 模块,因此我无法使用这些Get-AD*
模块。因此,我正在使用System.DirectoryServices.DirectorySearcher
.
我需要为每个以字符串开头的 AD 组查询整个森林。我只需要组名和 DN,所以我将查询GC://DC=company,DC=com
。
我的查询很大。它将返回超过 100 万条记录。所以我要使用System.DirectoryServices.DirectorySearcher.PageSize
.
我的理解是,System.DirectoryServices.DirectorySearcher.FindAll()
将获取第一个X
项目X
的值,PageSize
然后X
在代码遍历返回的项目时自动获取下一个项目。
我的想法是在每个项目Start-Sleep -s 30
之后都有一个循环。X
有没有更有效的方法来运行这种查询?例如,有没有办法FindAll
让每次通话之间睡眠这么多秒以获取更多数据?
我只是想找到在不破坏我公司网络的情况下进行如此大查询的最佳方法。
如果这很重要,这就是我要查询的内容:
<GC://DC=company,DC=com>;
(|
(&
(objectCategory=group)
(objectClass=group)
(name=prefix-*)
)
(&
(objectCategory=group)
(objectClass=group)
(name=prefix-*)
)
);
name,distinguishedName;
subtree