本以为可以用netuserenum,但发现它里头有个server的参数,其实只能得到某个域里的用户,而计算机里的用户可以是处于不同的域的用户;
感觉应该有个枚举该计算机所有用户(本地用户和属于网络上其他域的用户)的函数,但它是什么呢?
感觉应该有个枚举该计算机所有用户(本地用户和属于网络上其他域的用户)的函数,但它是什么呢?
解决方案 »
- MFC button形状变为圆形
- 从串口进行通讯,如何将数据显示为有符号的float类型?(数据读取是无符号的char类型的)
- 一个这样的函数 TailCompare(CString &str, CString &strKeyWord)
- 要建立一颗checkbox树,不想用IMGAELIST来实现,可出现问题了。
- 关于MDI和DLL的问题
- 如何添加.jpg图片[][][][][][][][]急
- 为何VC++.NET添加不了资源?
- vc++ excel操作
- 如何使用CreateDIBitmap函数创建HBITMAP?
- 不知是什么问题?
- 我在 idl 里定义了一个结构,里面有 _int64 类型,为什么编译通不过啊?????????
- 太邪门了,为什么我做的鼠标钩子只在本程序窗口有效?,各位大侠快帮忙呀!
LPWSTR UncServerName,
DWORD Level,
LPBYTE *BufPtr,
DWORD PreferedMaximumSize,
LPDWORD EntriesRead,
LPDWORD TotalEntries,
LPDWORD ResumeHandle
);NET_API_STATUS NetUseGetInfo (
LPWSTR UncServerName,
LPWSTR UseName,
DWORD Level,
LPBYTE *BufPtr
);
User Name Domain Group
Administrator WangMang Administrator
Zhangsan Server1 Administrator
我的问题就是怎么得到这个列表!
LPCWSTR servername,
DWORD level,
DWORD filter,
LPBYTE* bufptr,
DWORD prefmaxlen,
LPDWORD entriesread,
LPDWORD totalentries,
LPDWORD resume_handle
);
ifndef UNICODE
#define UNICODE
#endif#include <stdio.h>
#include <assert.h>
#include <windows.h>
#include <lm.h>int wmain(int argc, wchar_t *argv[])
{
LPUSER_INFO_0 pBuf = NULL;
LPUSER_INFO_0 pTmpBuf;
DWORD dwLevel = 0;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
DWORD dwResumeHandle = 0;
DWORD i;
DWORD dwTotalCount = 0;
NET_API_STATUS nStatus;
LPTSTR pszServerName = NULL; if (argc > 2)
{
fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]);
exit(1);
}
// The server is not the default local computer.
//
if (argc == 2)
pszServerName = argv[1];
wprintf(L"\nUser account on %s: \n", pszServerName);
//
// Call the NetUserEnum function, specifying level 0;
// enumerate global user account types only.
//
do // begin do
{
nStatus = NetUserEnum(pszServerName,
dwLevel,
FILTER_NORMAL_ACCOUNT, // global users
(LPBYTE*)&pBuf,
dwPrefMaxLen,
&dwEntriesRead,
&dwTotalEntries,
&dwResumeHandle);
//
// If the call succeeds,
//
if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
{
if ((pTmpBuf = pBuf) != NULL)
{
//
// Loop through the entries.
//
for (i = 0; (i < dwEntriesRead); i++)
{
assert(pTmpBuf != NULL); if (pTmpBuf == NULL)
{
fprintf(stderr, "An access violation has occurred\n");
break;
}
//
// Print the name of the user account.
//
wprintf(L"\t-- %s\n", pTmpBuf->usri0_name); pTmpBuf++;
dwTotalCount++;
}
}
}
//
// Otherwise, print the system error.
//
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
//
// Free the allocated buffer.
//
if (pBuf != NULL)
{
NetApiBufferFree(pBuf);
pBuf = NULL;
}
}
// Continue to call NetUserEnum while
// there are more entries.
//
while (nStatus == ERROR_MORE_DATA); // end do
//
// Check again for allocated memory.
//
if (pBuf != NULL)
NetApiBufferFree(pBuf);
//
// Print the final count of users enumerated.
//
fprintf(stderr, "\nTotal of %d entries enumerated\n", dwTotalCount); return 0;
}
http://search.csdn.net/Expert/topic/690/690339.xml?temp=.1561548
User Name Domain Group
Administrator WangMang Administrator
Zhangsan Server1 Administrator
楼上的方法也只能得到Domain为WangMang的用户,对于属于server1的用户还是取不到
-----------------------------------------------------------------------------Documents and Settings里不光有用户名,还可能有其他目录的