powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить ФИО пользователя учётной записи
25 сообщений из 32, страница 1 из 2
Получить ФИО пользователя учётной записи
    #39787284
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как получить ФИО пользователя?
Например, логин юзера ivanov_ii, а в меню пуск написано Иванов Иван Иваныч, вот это как раз и надо получить.
В гугле говорят, что надо юзать LDAP. Однако, реальных примеров не встречал.
Есть такое:
Код: plaintext
1.
hr = ADsGetObject(L"LDAP://CN=computers,DC=mydomain,DC=local", IID_IADsContainer, (void**) &pCont );


В Borland C++ Builder 6.0 ругается на
(void**) &pCont

Знаю, что на VB6 это выглядит так:
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub asdas()
Set SI_ = CreateObject("ADSystemInfo")
Set Un_ = GetObject("LDAP://" & SI_.UserName)
UZ_ = Un_.DisplayName
msgbox UZ_
End Sub


Оно возвращает ФИО из учётной записи пользователя, вошедшего в домен. А не его логин.
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787306
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LDAP - это из пушки по воробьям
юзай пока это
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787307
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum,
Пробовал, возвращает 1, при конверте получаю ник, а фио.
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787309
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787312
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя лучше https://docs.microsoft.com/en-us/windows/desktop/api/lmaccess/ns-lmaccess-_user_info_4
Документация говорит, что вместо 3 надо использовать 4, но это не отменяет использование usri4_full_name
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787313
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там же можно глянуть что внутри usri4_comment
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787315
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelЕсть такое:
Код: plaintext
1.
hr = ADsGetObject(L"LDAP://CN=computers,DC=mydomain,DC=local", IID_IADsContainer, (void**) &pCont );



В Borland C++ Builder 6.0 ругается на
(void**) &pCont

Код: plaintext
1.
2.
3.
void* pCont;
...
hr = ADsGetObject(L"LDAP://CN=computers,DC=mydomain,DC=local", IID_IADsContainer, &pCont );
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787351
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum,
Здорово, почитал, вроде интересно написано, но опять же без примеров использования.
Учтите, логин неизвестен, домен неизвестен.
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787386
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelЗдорово, почитал, вроде интересно написано, но опять же без примеров использования.
Учтите, логин неизвестен, домен неизвестен.
Как описал задачу, так тебе и ответил.
Ты нигде не говорил, что тебе нужно проанализировать Organization Unit или домен целиком, вытащить из него всех пользователей и извлечь их полные сведения об имени. Речь шла о том, что есть логин ivanov_ii и по нему нужно получить user friendly имя

Если нужно перебрать всех пользователей и вытащить их данные, то юзай это + USER_INFO_10

Если имя домена не известно, то его можно узнать из NetGetAnyDCName или NetGetDCName

Есть и такое
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787401
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum,
Не, не. Я не говорил что известен логин и домен.
Надо узнать фио юзера, который зашёл под собой, то есть текущего юзера, который запустил программу/код.
Я как бы считал, что это понятно сразу...
Прошу прощения, за не полную информацию тогда.
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787402
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum,
и юзеров перебирать не надо, надо текущего
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787441
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelи юзеров перебирать не надо, надо текущего
GetUserName
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787444
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum, GetUserName пробовал - возвращает ник... :-(
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787445
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно что автору надо. Под Windows переменные окружения содержат
имя текущего пользователя и домен.

https://www.itprotoday.com/cloud-computing/what-environment-variables-are-available-windows

Если нужно смотреть других пользователей то наверное надо смотреть не LDAP (хотя он тоже в деле)
а более проприетарные WinAPI функции которые спецом заточены для Windows-домена.
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787447
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
Переменные не содержат фио, переменные содержать ник(логин)
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787449
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
Смотреть надо ТЕКУЩЕГО пользователя.
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787452
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelCerebrum, GetUserName пробовал - возвращает ник... :-(
Ты говоришь, что тебе надо получить информацию для текущего пользователя, но его учетную запись (логин) ты НЕ знаешь. Используя GetUserName можно запросить логин текущего пользователя и используя его в NetGetUserInfo запросить все остальные недостающие сведения USER_INFO_10
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787461
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#include <activeds.h>
#include <stdio.h>
 
   HRESULT hr;
 
   hr = CoInitialize(NULL);
 hrh = CoInitialize(NULL);
    IADsADSystemInfo *pSys;
    hr = CoCreateInstance(CLSID_ADSystemInfo,
                          NULL,
                          CLSCTX_INPROC_SERVER,
                          IID_IADsADSystemInfo,
                          (void**)&pSys);
 
   BSTR bstr;
   hr = pSys->get_UserName(&bstr);
   if (SUCCEEDED(hr)) {
      hrh = ADsGetObject(L"LDAP://"+pSys->get_UserName(&bstr), IID_IADs, (void**) &pObject);
   }


???
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787468
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тебе рано пока, отдай задачу тому, кто шарит в языке, либо садись за буквари

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#include "lm.h"
#pragma comment(lib, "netapi32.lib")

DWORD dwLoginLen = 256UL;
WCHAR tUserLogin[256] = {0};
if (::GetUserName(tUserLogin, &dwLoginLen))
{
	BYTE* pbUserInfo = nullptr;
	if (::NetUserGetInfo(NULL, tUserLogin, 10UL, &pbUserInfo) == NERR_Success)
	{
		auto pUserInfo = reinterpret_cast<PUSER_INFO_10>(pbUserInfo);

		::MessageBox(NULL, pUserInfo->usri10_full_name, pUserInfo->usri10_name, MB_ICONINFORMATION);
		::NetApiBufferFree(pbUserInfo);
	}
}


??
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787681
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum,
Ошибки, начиная с 3й строки, не может конвертануть wchar в char, и дальше в каждой строке аналогичные ошибки, только типы разные.
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787904
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyBlackeAngel,

А с какой целью вы пытаетесь писать программу на С++ не зная даже его основ?
Диверсию готовите?
Для того что бы узнать его, точнее именно тех мест, которые интересуют, а не всего.
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787908
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelДля того что бы узнать его, точнее именно тех мест, которые интересуют, а не всего
весь не обязательно, основ достаточно
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787988
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelОшибки, начиная с 3й строки, не может конвертануть wchar в char, и дальше в каждой строке аналогичные ошибки, только типы разные.
установи в свойствах проекта - Unicode, либо добавь
#include "tchar.h"
и замени WCHAR на TCHAR
BlackeAngelnullptr вообще не знает
замени на NULL
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39787997
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelДля того что бы узнать его, точнее именно тех мест, которые интересуют, а не всего.
тогда ты начал не с того края, начинать нужно было с
Уроки С++
и только потом
Windows via C/C++. Программирование на языке Visual C++
Программирование серверных приложений для Microsoft Windows 2000
...
Рейтинг: 0 / 0
Получить ФИО пользователя учётной записи
    #39788079
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum,
BlackeAngelBorland C++ Builder 6.0
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить ФИО пользователя учётной записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]