我正在使用以下代码来运行NetUserGetInfo函数:

bool MyGetComputerName(std::wstring &ComputerName) {
    bool bReturn=false;
    WCHAR ComputerNameBuffer[MAX_COMPUTERNAME_LENGTH+1]={0};
    DWORD dwComputerNameLength=MAX_COMPUTERNAME_LENGTH+1;
    DWORD dwReturn=GetComputerNameExW(ComputerNameNetBIOS,ComputerNameBuffer,&dwComputerNameLength);
    if(dwReturn) {
        ComputerName=std::wstring(ComputerNameBuffer);
        bReturn=true;
    }
    return bReturn;
}
std::wstring ComputerName;
MyGetComputerName(ComputerName);
USER_INFO_1003* pUserInfo=0;
NetUserGetInfo(ComputerName.c_str(),L"Gast",1003,reinterpret_cast<LPBYTE*>(&pUserInfo));


函数NetUserGeInfo失败并返回错误124。GetLastError返回错误997。
我究竟做错了什么?

最佳答案

您对NetUserGetInfo的第三个参数完全无效,这就是为什么它返回错误124(ERROR_INVALID_LEVEL)的原因。

如果希望它起作用,请在the documentationlevel参数指定的范围内传递数字。在这种情况下,您应该传递值1。

关于c++ - NetUserGetInfo失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44196549/

10-09 21:37