visual-c++ - ADsOpenObject - 连接到同一网络中另一个域的 rootDSE
问题描述
我需要连接到同一网络中另一个域的 rootDSE。我参考了在这个Microsoft 论坛线程中找到的解决方案。我使用以下代码建立连接。
hr = ADsOpenObject(L"LDAP://DC1.domain.com/rootDSE",
L"admin",
L"password",
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(void**)&pObject);
if(!SUCCEEDED(hr)){
_com_error err(hr);
LPCTSTR errMsg = err.ErrorMessage();
std::wcout<<errMsg<<L"\n";
}
我无法连接到 rootDSE,错误消息(errMsg):
服务器无法运行。
解决方案
我使用以下 LDAP 模式完成了连接到同一网络中另一个域的 rootDSE:
"LDAP://win2k3/rootDSE"
注意:我的 DC 的 NETBIOS 名称是 win2k3。win2k3 属于另一个域,但与我的计算机在同一个网络中。
IADs *pObject;
HRESULT hr;
CoInitialize(NULL);
hr = ADsOpenObject(L"LDAP://<DC-NETBIOS>/rootDSE",
username,
password,
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(void**)&pObject);
if (hr == S_OK) printf("\nBind to rootDSE success\n");
else {
_com_error err(hr);
LPCTSTR errMsg = err.ErrorMessage();
std::wcout << L"Hresult: " << errMsg << L"\n";
}
推荐阅读
- javascript - 使用 setInterval Node.js 每秒加载新的 HTML 文件
- html - 使用 Bootstrap 为 Web 和移动设备创建可滑动的导航栏
- reactjs - 守望者意外退出
- html - 如何设置网格元素旋转
- azure - 如何通过另一个逻辑应用访问 Azure 逻辑应用运行日志
- javascript - 有没有办法使用命名箭头函数来维护对象内的词法范围?
- hyperledger-fabric - 在 Hyperledger Fabric 中使用基于自定义关联的策略
- java - 在读取 excel 文件时继续在 java 中进行下一次迭代
- reactjs - 反应 useState 钩子无法正常工作
- r - 应用函数中的条件语句在 R 中无法正常工作