我正在尝试找出一个C++代码来枚举当前工作站在Active设置中是成员的组。我想出了下面的Visual脚本,它完全满足了我的需要:
'DN for the workstation
cCN = "CN=WorkstationName,CN=Computers,DC=mydomain,DC=local"
Set objComputer=GetObject("LDAP://" & cCN)
Dim strAll
Dim colGroups, objGroup
strAll = ""
Set colGroups = objComputer.Groups
For Each objGroup In colGroups
strAll = strAll & objGroup.distinguishedName & vbLf
Next
Wscript.Echo strAll
我收到的输出如下:
CN=Group1,OU=SomeOU,DC=mydomain,DC=local
CN=Group2,OU=SomeOU,DC=mydomain,DC=local
问题是,我似乎无法将LDAP内容转换为C++。
如果有人能帮我的忙我会很感激的?
编辑:以下是我从C++知识和COM中收集到的尽可能多的信息:
// Initialize COM.
CoInitialize(NULL);
LPCTSTR pwszContainerDN = L"CN=WorkstationName,CN=Computers,DC=mydomain,DC=local";
CComBSTR strADsPath = L"LDAP://";
strADsPath += pwszContainerDN;
IADs *objComputer;
HRESULT hr;
hr = ADsGetObject(strADsPath,
IID_IADs,
(void**) &objComputer);
if(SUCCEEDED(hr))
{
//Now how do you do "objComputer.Groups"?
//Then later "For Each" enumeration, etc.?
}
// Uninitialize COM.
CoUninitialize();
发布于 2012-11-12 10:35:38
您还可以使用WinLDAP库。看这个LDAP Search with winldap.h on AD Server。
https://stackoverflow.com/questions/13338045
复制相似问题