c++ - 使用 C++ 获取本地计算机所属的 OU(组织单位)名称

标签 c++ winapi active-directory ou

我需要使用 WinAPI/C++ 找出本地计算机(连接到 Active Directory)所属的 OU 的名称。有什么想法吗?

最佳答案

理论上,这相当简单:使用 ADsOpenObject 连接到服务器, 实例化一个 IDirectorySearch并调用它的 ExecuteSearch方法,然后使用 GetFirstRowGetNextRow遍历结果数据(但对于此查询,您只需要一行)。

然而,实际上,所有这些都是 COM —— 所以预计那些半打(或大约)函数调用在至少一百行 COM 的粗鲁中几乎丢失(并且到代码是可靠的时候并且健壮,如果它接近 1000 行,请不要感到惊讶,其中大部分与 Active Directory 没有明显的联系)。

我应该补充一点,几乎可以肯定还有其他方法可以做到这一点——我记得,MS 至少提供了两种或三种不同的方法来访问 LDAP 类型的数据。当我为此编写一些代码时,我最初试图找到最干净的代码,但沮丧地放弃了。似乎没有希望最干净——至少在那个时候,我满足于“丑陋但有些记录”。

关于c++ - 使用 C++ 获取本地计算机所属的 OU(组织单位)名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993480/

相关文章:

c++ - 牌组洗牌 vector

c++ - windows C++ opening printer with documentproperties get C6836 "Write Overrun"代码分析警告

sql-server - 如何从 SQL Server 存储的 SID 获取 Active Directory 组名称?

c++ - gcc内联汇编jmp地址;裸函数

c++ - 如果对象在下一步被破坏,为什么不自动 move ?

c++ - 如何专门化非模板类的模板成员函数?

c++ - 如何从 Windows 应用程序检测禁用的网络接口(interface)连接?

c++ - Windows服务创建文件的默认目录在哪里?

c# - 用。。。来代替\

hadoop - 具有LDAP认证的Cloudera Manager