vc 导出AD域中用户的用户名 和登录名等信息

用向导添加COM接口会简单些;这是纯C++的搜索代码,包含activeds.h,链接activeds.lib: 


   HRESULT hr = S_OK; // COM result variable

    ADS_SEARCH_COLUMN col;  // COL for iterations
    LPWSTR szUsername = NULL; // user name
    LPWSTR szPassword = NULL; // password

    // Interface Pointers.
    IDirectorySearch     *pDSSearch    =NULL;

    // Initialize COM.
    CoInitialize(0);

    // Add code to securely retrieve the user name and password or
    // leave both as NULL to use the default security context.

    // Open a connection with server.
    hr = ADsOpenObject(L"LDAP://coho.salmon.Fabrikam.com",
        szUsername,
        szPassword,
        ADS_SECURE_AUTHENTICATION,
        IID_IDirectorySearch,
        (void **)&pDSSearch);
    LPWSTR pszAttr[] = { L"description", L"Name", L"distinguishedname" };
    ADS_SEARCH_HANDLE hSearch;
    DWORD dwCount = 0;
    DWORD dwAttrNameSize = sizeof(pszAttr)/sizeof(LPWSTR);
    // Search for all objects with the 'cn' property that start with c.
    hr = pDSSearch->ExecuteSearch(L"(cn=c*)",pszAttr ,dwAttrNameSize,&hSearch );
    LPWSTR pszColumn;
    while( pDSSearch->GetNextRow( hSearch) != S_ADS_NOMORE_ROWS )
    {
        // Get the property.
        hr = pDSSearch->GetColumn( hSearch, L"description", &col );

        // If this object supports this attribute, display it.
        if ( SUCCEEDED(hr) )
        {
            if (col.dwADsType == ADSTYPE_CASE_IGNORE_STRING)
                wprintf(L"The description property:%s\r\n", col.pADsValues->CaseIgnoreString);
            pDSSearch->FreeColumn( &col );
        }
        else
            puts("description property NOT available");
        puts("------------------------------------------------");
        dwCount++;
    }
    pDSSearch->CloseSearchHandle(hSearch);
    pDSSearch->Release();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值