首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在工作组Windows Server 2008 R2上运行时NetUserAdd失败

问在工作组Windows Server 2008 R2上运行时NetUserAdd失败
EN

Stack Overflow用户
提问于 2014-02-28 02:33:44
回答 1查看 210关注 0票数 0

我正在尝试使用网络管理API将本地用户添加到Windows。我在windows7(无论是在域还是在工作组上)上运行时没有任何问题,或者在域上运行windows2008 R2服务器时也没有问题。然而,如果我在WindowsServer2008 R2上运行它,而不是在一个域上,我会得到一个错误。问题是返回的错误代码是-1,而不是文档中给定的错误之一

代码语言:javascript
复制
bool CLocalUsers::AddUser(LPCTSTR lpszUserName, LPCTSTR lpszPassword)
{
    // Clear error code
    m_dwLastError = 0;

    USER_INFO_1 ui;
    ui.usri1_name = (LPTSTR)(LPCTSTR)lpszUserName;
    ui.usri1_priv = USER_PRIV_USER;
    ui.usri1_home_dir = NULL;
    ui.usri1_comment = NULL;
    ui.usri1_flags = UF_SCRIPT | UF_DONT_EXPIRE_PASSWD;
    ui.usri1_script_path = NULL;

    // Point to a zero character password if null
    if(lpszPassword == NULL)
    {
        lpszPassword = _T("");
        ui.usri1_flags |= UF_PASSWD_NOTREQD;
    }
    ui.usri1_password = (LPTSTR)(LPCTSTR)lpszPassword;

    // Add the user
    NET_API_STATUS nStatus = ::NetUserAdd(NULL, 1, (LPBYTE)&ui, &m_dwLastError);
    if(nStatus != NERR_Success)
    {
        // DEBUG ONLY
        CString szErrorMsg;
        szErrorMsg.Format(_T("Error code %d"), m_dwLastError);
        ::AfxMessageBox(szErrorMsg, MB_OK);
        // DEBUG ONLY
        return false;
    }
    return true;
}

它是以管理员权限运行的。我可以毫无问题地调用其他网络函数(NetUserGetInfo、NetLocalGroupAddMembers)。

我尝试过不同的密码大小,但我可以使用Windows 2008附带的服务器管理器工具,使用相同的信息创建相同的帐户

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-02-28 17:18:33

在查看了状态代码而不是m_dwLastError之后,发现它是NERR_PasswordTooShort,因为在新的Windows2008服务器上,最低密码要求是8个字符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22077330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档