获取AD域下的所有用户
来源:互联网 发布:淘宝运营过程数据分析 编辑:程序博客网 时间:2024/05/01 19:54
#include "stdafx.h"#include <activeds.h>#include <adsiid.h>#include <stdio.h>#include <atlbase.h> #pragma comment(lib, "Activeds.lib")#pragma comment(lib, "adsiid.lib")void main(){ HRESULT hr; IDirectorySearch *pSearch; // Inititalization CoInitialize(NULL); // Bind to the base search object //此函数也可以验证用户和用户名是否合法 hr = ADsOpenObject(CComBSTR("LDAP://192.168.1.191"), //地址 CComBSTR("administrator"), //用户 CComBSTR("Admin123"), //密码 ADS_SECURE_AUTHENTICATION, IID_IDirectorySearch, (void**)&pSearch); ADS_SEARCHPREF_INFO prefInfo[1]; prefInfo[0].dwSearchPref = ADS_SEARCHPREF_SEARCH_SCOPE; prefInfo[0].vValue.dwType = ADSTYPE_INTEGER; prefInfo[0].vValue.Integer = 100; hr = pSearch->SetSearchPreference( prefInfo, 1); if (FAILED(hr)) { pSearch->Release(); //return hr; } // Prepare for attributes to be returned LPWSTR pszSearchFilter = L"(&(objectClass=user)(objectCategory=person))"; //LPWSTR pszAttr[] = {L"sAMAccountName"}; LPWSTR pszAttr[] = {L"name"}; ADS_SEARCH_HANDLE hSearch; LPOLESTR pszColumn = NULL; int iCount = 0; DWORD x = 0; DWORD dwCount= sizeof(pszAttr)/sizeof(LPWSTR); // Search hr = pSearch->ExecuteSearch( pszSearchFilter, pszAttr, dwCount, &hSearch ); // Enumerate the search result ADS_SEARCH_COLUMN col; if ( SUCCEEDED(hr) ) { // Call IDirectorySearch::GetNextRow() to retrieve the next row of data hr = pSearch->GetFirstRow(hSearch); if (SUCCEEDED(hr)) { while( hr != S_ADS_NOMORE_ROWS ) { //Keep track of count. iCount++; // loop through the array of passed column names, // print the data for each column while( pSearch->GetNextColumnName( hSearch, &pszColumn ) != S_ADS_NOMORE_COLUMNS ) { hr = pSearch->GetColumn( hSearch, pszColumn, &col ); if ( SUCCEEDED(hr) ) { for (x = 0; x< col.dwNumValues; x++) wprintf(L"%s: %s ",col.pszAttrName,col.pADsValues[x].CaseIgnoreString); } pSearch->FreeColumn( &col ); } FreeADsMem( pszColumn ); //Get the next row hr = pSearch->GetNextRow( hSearch); wprintf(L"\n"); } } } CoUninitialize(); //return S_OK;}
0 0
- 获取AD域下的所有用户
- 获取用户下的所有表名
- 枚举当前域中的AD所有用户
- 使用LDAP接口获取AD域用户
- Java使用LdAP获取AD域用户
- 在windows authentication模式下获取发起request的用户所属于的AD group信息
- AD 中所有的用户导出到csv
- 利用递归获取AD中的用户所在的组
- 获取AD域中的组织单位域用户,并且对用户大于1000个的进行分批读取
- JAVA LADP获取AD域用户列表信息
- C#获取“所有用户桌面”的路径
- C#获取“所有用户桌面”的路径
- VC获取Windows所有用户的用户名
- gitlab api获取所有用户的记录
- 获取oracle数据库当前用户下所有表名和表名的注释
- 如何获取Oracle数据库中某个用户下的所有表、索引、约束、触发器
- oracle获取当前用户下所有的表名和表注释
- 获取oracle数据库当前用户下所有表名和表名的注释
- mysql在表的某一位置增加一列、删除一列、修改列名
- Effective C++(1)------------------------------构造/析构/赋值
- Windows上安装配置Laravel Homestead
- 关于指针(一)
- 犀牛——第3章 类型、值和变量 3.7不可变的原始值和可变的对象引用
- 获取AD域下的所有用户
- vs2008专业版无法生成debug文件解决方案
- 用shell脚本实现监控程序自动重启
- linux中将整个目录移动到另一个目录中
- linux 安装应用软件
- linux常用命令
- ubuntu所有引导问题的万能解决办法
- Java基础知识总结(一)
- error C2039: 'wstring' : is not a member of 'std'(转)