Получение имени группы пользователей в Windows XP - используя любой возможный способ - PullRequest
5 голосов
/ 28 января 2009

Я написал аналогичный вопрос о том, как сделать это в JNDI, но в ЭТОМ сообщении мне интересно, как это сделать, используя ЛЮБОЙ ИНТЕРФЕЙС.

Я хотел бы иметь возможность получить имя группы пользователя. Когда я говорю «группа», я имею в виду группу на компьютере. Как "администратор" или "пользователь".

Могу ли я сделать это через командную строку, приложение, DLL или какой-либо интерфейс?

Кто-нибудь знает, как это можно сделать? Кто-нибудь делал это? Это простая задача?

Ответы [ 3 ]

8 голосов
/ 28 января 2009

Из командной строки:

net user <username>

или если они находятся в домене

net user <username> /domain

Внизу находятся 2 раздела: Членство в локальных группах и Членство в глобальных группах.

Примечание: у пользователя может быть много групп (в моем случае на работе всего 8!)

1 голос
/ 28 января 2009

Вот пример на VB (должен быть простым для преобразования на другой язык):

Dim User as IADsUser
Dim Group as IADsGroup
Dim UserDomain as String
Dim UserName as String

UserDomain = "Target_User_Domain"
UserName = "Target_User_Name"
Set User = GetObject("WinNT://" & UserDomain & "/" & UserName & ",user")

For Each Group in User.Groups
   Debug.Print Group.NameNext
0 голосов
/ 28 января 2009

Если вы хотите узнать группы, в которые входит текущий зарегистрированный пользователь, вы можете использовать

System.Security.Principal.WindowsIdentity.GetCurrent().Groups

UPDATE

Если вы хотите получить все доступные группы, Я думаю, , вы должны использовать Windows API. Но чтобы проверить, входит ли текущий пользователь в определенную группу, вы можете использовать следующий код:

WindowsIdentity currentUser = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(currentUser);
bool isInGroup = principal.IsInRole("{Group Name}");

Если вы хотите проверить наличие встроенных групп Windows, вы можете использовать перечисление WindowsBuiltInRole в методе IsInRole.

...