调用AddUser

时间:2016-01-02 09:32:15

标签: c++ c winapi user-management

我正在尝试使用NetAddUser添加本地用户,但是无缘无故地获取此错误代码 - 87。据我所知,根据MSDN,完成了一段代码。这可能有什么问题?

#include "stdafx.h"
#include <windows.h>
#include <Lm.h>

#pragma comment(lib, "netapi32.lib")

int _tmain(int argc, _TCHAR* argv[])
{
    wchar_t wchLogin[256] = { 0 };
    wchar_t wchPassword[256] = { 0 };
    DWORD dwError = 0;
    USER_INFO_1 user_info;
    //ZeroMemory(&user_info, sizeof(USER_INFO_1));
    NET_API_STATUS err;

    wcscpy_s(wchLogin, L"test_user");
    wcscpy_s(wchPassword, L"123");


    user_info.usri1_name = wchLogin;
    user_info.usri1_password = wchPassword;
    user_info.usri1_priv = USER_PRIV_ADMIN;
    //user_info.usri1_script_path = L"";

    //user_info.usri1_flags = UF_SCRIPT;
    //user_info.usri1_home_dir = NULL;
    //user_info.usri1_comment = NULL;
    //user_info.usri1_flags = UF_SCRIPT | UF_WORKSTATION_TRUST_ACCOUNT;


    err = NetUserAdd(NULL, 1, (LPBYTE)&user_info, &dwError);
    if ( err != NERR_Success )
    {
        printf("Error adding user: %d\n", err);
    }


    getchar();
    return 0;
}

谢谢!

1 个答案:

答案 0 :(得分:1)

答案在MSDN中,这是摘录:

  

<强> usri1_priv

     

输入:DWORD

     

分配给usri1_name成员的权限级别。 当您调用NetUserAdd函数时,此成员必须为USER_PRIV_USER 。什么时候   你调用NetUserSetInfo函数,这个成员必须是值   由NetUserGetInfo函数或NetUserEnum函数返回。   该成员可以是以下值之一。欲获得更多信息   关于用户和组帐户权限,请参阅权限。