Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Работа с пользователями


Автор: RollerCoaster 4.10.2007, 08:14
Подскажите, пожалуйста, как программно добавить/удалить пользователя ОС и как можно изменить его права, группу? Заранее спасибо!

Автор: SenkraD 4.10.2007, 08:47
RollerCoaster,  посмотри в MSDN раздел User Functions

P.S. Tам под кажую функцию пример есть

Автор: RollerCoaster 9.10.2007, 11:46
Если не трудно кинь, пожалуйста, примерчик! Что не могу найти в MSDN-е. Может потому что у меня MSDN от октября 2001 года?

Автор: SenkraD 9.10.2007, 12:16
RollerCoaster,  вот пример создания юзера:
Код

#ifndef UNICODE
#define UNICODE
#endif

#include <stdio.h>
#include <windows.h> 
#include <lm.h>

int wmain(int argc, wchar_t *argv[])
{
   USER_INFO_1 ui;
   DWORD dwLevel = 1;
   DWORD dwError = 0;
   NET_API_STATUS nStatus;

   if (argc != 3)
   {
      fwprintf(stderr, L"Usage: %s \\\\ServerName UserName\n", argv[0]);
      exit(1);
   }
   //
   // Set up the USER_INFO_1 structure.
   //  USER_PRIV_USER: name identifies a user, 
   //    rather than an administrator or a guest.
   //  UF_SCRIPT: required for LAN Manager 2.0 and
   //    Windows NT and later.
   //
   ui.usri1_name = argv[2];
   ui.usri1_password = argv[2];
   ui.usri1_priv = USER_PRIV_USER;
   ui.usri1_home_dir = NULL;
   ui.usri1_comment = NULL;
   ui.usri1_flags = UF_SCRIPT;
   ui.usri1_script_path = NULL;
   //
   // Call the NetUserAdd function, specifying level 1.
   //
   nStatus = NetUserAdd(argv[1],
                        dwLevel,
                        (LPBYTE)&ui,
                        &dwError);
   //
   // If the call succeeds, inform the user.
   //
   if (nStatus == NERR_Success)
      fwprintf(stderr, L"User %s has been successfully added on %s\n",
               argv[2], argv[1]);
   //
   // Otherwise, print the system error.
   //
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);

   return 0;
}


а вот User Function:
NetUserAdd -  Adds a user account and assigns a password and privilege level. 
NetUserChangePassword -  Changes a user's password for a specified network server or domain. 
NetUserDel - Deletes a user account from the server. 
NetUserEnum - Lists all user accounts on a server. 
NetUserGetGroups - Returns a list of global group names to which a user belongs. 
NetUserGetInfo - Returns information about a particular user account on a server. 
NetUserGetLocalGroups - Returns a list of local group names to which a user belongs. 
NetUserSetGroups - Sets global group memberships for a specified user account. 
NetUserSetInfo -  Sets the password and other elements of a user account. 

Автор: RollerCoaster 15.10.2007, 12:00
SenkraD, спасибо тебе большое за помощь!
С добавлением пользователей я разобрался, но не могу найти как можно пользователю назначить право "Logon as service" и т.п права?

Автор: RollerCoaster 17.10.2007, 12:27
Сам нашел:

LsaAddAccountRights - вот эта функция smile

Автор: Sharkfire 15.5.2009, 21:20
Господа, будьте добры, подскажите код отключающий аккаунт пользователя.
(Т.е по его имени и пасу теперь зайти невозможно. пока его админ не включит) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)