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

    #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 != 2) {			//如果这里的参数个数不是2个,则触发如下
    		wprintf(L"Usage: +  \\servername
    ");
    		wprintf(L"Eg:    +  \\127.0.0.1
    ");
    		exit(1);    //程序的退出,同break
    	}
    
    	LPCWSTR servername = argv[1];				// 已经建立ipc连接的IP
    	LOCALGROUP_INFO_1* cunchu;			// LOCALGROUP_MEMBERS_INFO_1结构和下面构造函数的level相关,再调用lgrpi1_name获得组名,变量cunchu存放获取到的信息
    	DWORD dwPrefmaxlen = MAX_PREFERRED_LENGTH;	// 指定返回数据的首选最大长度,以字节为单位。如果指定MAX_PREFERRED_LENGTH,该函数将分配数据所需的内存量。
    	DWORD dwEntriesread;						// 指向一个值的指针,该值接收实际枚举的元素数。
    	DWORD dwTotalentries;						//指向一个值的值,该值接收可能已从当前简历位置枚举的条目总数
    	NetLocalGroupEnum(servername, 1, (LPBYTE*)&cunchu, dwPrefmaxlen, &dwEntriesread, &dwTotalentries, NULL);
    	//上边的1就是函数里的等级level,在LOCALGROUP_INFO_1* cunchu提到的下面相互对应	
    	for (DWORD i = 0; i < dwEntriesread; i++) {  // i < dwEntriesread 小于收到的指针的元素数量
    		//lgrmi2_domainandname是LOCALGROUP_MEMBERS_INFO_2的结构,回显DomainNameAccountName
    		wprintf(L"%s
    ", cunchu[i].lgrpi1_name);
    	}
    }
    

    参考
    https://docs.microsoft.com/en-us/windows/win32/api/lmaccess/ns-lmaccess-localgroup_members_info_1
    https://docs.microsoft.com/en-us/windows/win32/api/lmaccess/nf-lmaccess-netlocalgroupenum
    https://github.com/SkewwG/domainTools
    
    联系邮箱:yang_s1r@163.com 博客园地址:https://www.cnblogs.com/Yang34/
  • 相关阅读:
    2021.8.2—2021.8.8
    2021.7.29
    2021.7.27
    2021.7.26
    GC日志分析
    学习类加载机制笔记
    4、SpringCloud停更说明
    3、SpringCloudAlibaba版本选择
    京东、阿里的微服务架构
    nacos集群安装
  • 原文地址:https://www.cnblogs.com/Yang34/p/14393724.html
Copyright © 2011-2022 走看看