Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_drsp_02.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
123.39 Кб
Скачать

6. Видалення членів локальної групи

Для видалення членів локальної групи використовується функція NetLocalGroupDelMembers, яка має наступний прототип:

NET_API_STATUS NetLocalGroupDelMembers(

LPCWSTR servername, // ім'я сервера

LPCWSTR groupname, // ім'я групи

DWORD level, // рівень інформації

LPBYTE buf, // буфер з інформацією

DWORD totalentries // кількість структур в буфері

);

У разі успішного завершення функція NetLocalGroupDelMembers повертає значення NERR_success, а у разі невдачі можливі наступні коди завершення:

  • NERR_GroupNotFound — група не знайдена;

  • error_no_such_member — не існує членів, які віддаляються з групи;

  • error_member_in_alias — деякі облікові члени не є членами локальної групи, тому з групи не був видалений жоден член.

У лістингу 7 приведена програма, яка видаляє члена локальної групи по імені за допомогою функції NetLocalGroupDelMembers.

Лістинг 7. Видалення члена локальної групи по імені

#include <stdio.h>

#include <windows.h>

#include <lm.h>

#pragma comment( lib, "netapi32.lib" ) // підключаємо мережеву бібліотеку

int main()

{

wchar_t server_name[256]= L"\\\\"; // ім'я сервера

wchar_t group_name[GNLEN]; // ім'я локальної групи

wchar_t user_name[UNLEN]; // ім'я користувача

LOCALGROUP_MEMBERS_INFO_3 member_info; // інформація про

члена групи

NET_API_STATUS ret_status; // код повернення з функції

printf("Input server name: ");

// формуємо ім'я сервера

wscanf(L"%s", server_name + wcslen(server_name));

printf("Input a local group name: ");

wscanf(L"%s", group_name); // вводимо ім'я групи

printf("Input а domain name: ");

wscanf(L"%s", user_name); // вводимо ім'я домена

wcscat(user_name, L"\\"); // приєднуємо символ '\'

printf("Input а user name: ");

// вводимо ім'я користувача

wscanf(L"%s", user_name + wcslen(user_name));

// встановлюємо інформацію про користувача

member_info.lgrmi3_domainandname = user_name;

// видаляємо користувача з локальної групи

ret_status = NetLocalGroupDelMembers(

server_name, // ім'я сервера

group_name, // ім'я групи

3, // рівень інформації

(LPBYTE)&member_info, // інформація

про SID

1); // додаємо одного члена групи

if (ret_status != NERR_Success)

{

printf("Net local group del members.\n");

return ret_status;

}

printf("The member is deleted.\n");

return 0;

}

Практичне завдання:

  1. Набрати та відлагодити всі наведені в теоретичних відомостях лістинги.

  2. Написати програму, яка буде створювати локальні групи з іменами що задаються маскою. Наприклад: group@, 11,12,13,21,22,23,24 group11, group12, group13, group21, group22 … group-@, 11-16  group11, group12, group13… group16

  3. Написати програму виведення інформації про групи, які задовольняють умовам фільтру. Наприклад: m*  managers, men, mykolajiv_dep, minskSellers…

  4. Написати програму видалення користувача за введеним ідентифікатором безпеки користувача.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]