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

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

Для видалення облікового запису користувача з бази даних менеджера облікових записів використовується функція NetuserDel, яка має наступний прототип:

NET_API_STATUS NetUserDel(

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

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

);

Відзначимо, що успішно цю функцію можуть виконати тільки користувачі, які є адміністраторами або операторами облікових записів. А обліковий запис адміністратора може видалити тільки інший адміністратор.

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

□ error_access_denied — користувачеві відмовлено в доступі;

□ NERR_invaiidComputer — неправильне ім'я комп'ютера;

□ NERR_NotPrimary — не первинний контроллер домена;

□ NERR_userNotFound — ім’я користувача не знайдене.

Параметри цієї функції мають таке ж призначення, як в інших функціях управління користувачами.

Параметр servername повинен указувати на рядок з ім'ям сервера, на якому виконуватиметься функція. Цей рядок повинен мати кодування Unicode і починатися з символів \\. Якщо функція повинна виконуватися на локальному комп'ютері, то цей параметр повинен мати значення null.

Параметр username повинен указувати на рядок з ім'ям облікового запису, який віддаляється з бази даних менеджера облікових записів. Цей рядок повинен мати кодування Unicode.

У лістингу 4 приведена програма, яка видаляє обліковий запис користувача, використовуючи функцію NetUserDel.

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

#include <stdio.h>

#include <windows.h>

#include <lm.h>

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

int main()

{

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

wchar_t user_name[UNLEN]; // имя пользователя

NET_API_STATUS ret_status; // код возврата из функции

printf("Input server name: ");

wscanf(L"%s", server_name); // читаем имя домена

printf("Input user name: ");

wscanf(L"%s", user_name); // читаем имя пользователя

// удалаем пользователя

ret_status = NetUserDel(

server_name, // имя домена

user_name); // имя пользователя

// проверяем на успешное завершение

if (ret_status != NERR_Success)

{

printf("Net user del failed.\n");

printf("Net API Status: %d\n", ret_status);

return ret_status;

}

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

return 0;

}

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

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

  2. Написати програму, яка буде створювати користувачів з іменами що задаються маскою та кількістю. Наприклад: student@, 1-10  student1, student2, student3… user-@@, 1-10  user-01, user-02, user-03…

  3. Написати програму виведення інформації про користувачів, які задовольняють умовам фільтру. Наприклад: mel*  melnyk0125, melok5, melone, melkyj2…

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

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