zoukankan      html  css  js  c++  java
  • C++之NetLocalGroupGetMembers

    #include <stdio.h>
    #include <Windows.h>
    #include <lmaccess.h>
    
    #pragma comment(lib, "Netapi32.lib")
    	//wmain是main函数的宽字符版本  在Unicode编码下使用
    int wmain(int argc, wchar_t* argv[]) {//argc是输入参数的个数,argv存储了所有命令行的参数
    	if (argc != 3) {			//如果这里的参数个数不是三个,则触发如下
    		wprintf(L"Usage: + localgroupname \\servername
    ");
    		wprintf(L"Eg:    + administrators \\192.168.232.128
    ");
    		exit(1);    //程序的退出,同break
    	}
    	//argv[0]==exe程序 //argv[1]==组名  //argv[2]==目标ip
    	LPCWSTR servername = argv[2];				// 已经建立ipc连接的IP
    	LPCWSTR TargetGroup = argv[1];				// 本地组名
    	LOCALGROUP_MEMBERS_INFO_2* buff;			// LOCALGROUP_MEMBERS_INFO_2结构获得返回与本地组成员关联的SID、帐户信息和域名,变量buff存放获取到的信息
    	DWORD dwPrefmaxlen = MAX_PREFERRED_LENGTH;	// 指定返回数据的首选最大长度,以字节为单位。如果指定MAX_PREFERRED_LENGTH,该函数将分配数据所需的内存量。
    	DWORD dwEntriesread;						// 指向一个值的指针,该值接收实际枚举的元素数。
    	DWORD dwTotalentries;						//指向一个值的值,该值接收可能已从当前简历位置枚举的条目总数
    	NetLocalGroupGetMembers(servername, TargetGroup, 2, (LPBYTE*)&buff, dwPrefmaxlen, &dwEntriesread, &dwTotalentries, NULL);
    	//上边的2就是函数里的等级
    	for (DWORD i = 0; i < dwEntriesread; i++) {  // i < dwEntriesread 小于收到的指针的元素数量
    		//lgrmi2_domainandname是LOCALGROUP_MEMBERS_INFO_2的结构,回显DomainNameAccountName
    		wprintf(L"%s
    ", buff[i].lgrmi2_domainandname);
    	}
    }
    

    参考
    https://docs.microsoft.com/en-us/windows/win32/api/lmaccess/ns-lmaccess-localgroup_members_info_2
    https://docs.microsoft.com/en-us/windows/win32/api/lmaccess/nf-lmaccess-netlocalgroupgetmembers
    https://github.com/SkewwG/domainTools
    
    联系邮箱:yang_s1r@163.com 博客园地址:https://www.cnblogs.com/Yang34/
  • 相关阅读:
    华南虎原图找到了
    电脑高手的7大标准
    科幻小说一代宗师阿瑟•克拉克过逝
    看英文片最容易误解的10个单词(感觉对大家很有用,转过来的)
    地震了,人跑的真快啊
    John Titor一个来自未来的人
    马云扮白雪公主
    世界上最冷的脑筋急转弯
    告别人肉刷,让房源自己送上门
    来测下你的浏览器对标准的支持情况吧
  • 原文地址:https://www.cnblogs.com/Yang34/p/14393719.html
Copyright © 2011-2022 走看看