我需要使用 WinAPI/C++ 找出本地计算机(连接到 Active Directory)所属的 OU 的名称。有什么想法吗?
最佳答案
理论上,这相当简单:使用 ADsOpenObject
连接到服务器, 实例化一个 IDirectorySearch
并调用它的 ExecuteSearch
方法,然后使用 GetFirstRow
和 GetNextRow
遍历结果数据(但对于此查询,您只需要一行)。
然而,实际上,所有这些都是 COM —— 所以预计那些半打(或大约)函数调用在至少一百行 COM 的粗鲁中几乎丢失(并且到代码是可靠的时候并且健壮,如果它接近 1000 行,请不要感到惊讶,其中大部分与 Active Directory 没有明显的联系)。
我应该补充一点,几乎可以肯定还有其他方法可以做到这一点——我记得,MS 至少提供了两种或三种不同的方法来访问 LDAP 类型的数据。当我为此编写一些代码时,我最初试图找到最干净的代码,但沮丧地放弃了。似乎没有希望最干净——至少在那个时候,我满足于“丑陋但有些记录”。
关于c++ - 使用 C++ 获取本地计算机所属的 OU(组织单位)名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993480/