14 мая 2013 г.

Библиотека для работы с MSAM, AD DS и AD LDS

Понадобилось вот мне (точнее не мне :-) ) получить список администраторов и опытных пользователей на локальных машинах. Для получения требуемой информации сначала хотел использовать WMI, потом PowerShell. Потом вообще передумал. Решил использовать WSH (vbs). Упёрся в то, что на наших машинах каждый день запускается checkcfg, собирающий информацию о машине, а он вроде как исполняемый. Можно было выкрутиться и сделать батничек, скомпилированный в экзешничек, запускающий скриптик, но чем-то этот метод мне не понравился))

Поэтому решил использовать C#, который по мере возможности я пихаю при каждом удобном случае)) В общем, в закромах .NET Framework была найдена библиотека, которая просто влила жизнь в мою задачу, а также оставила зарубки в мозгу для последующего воплощения требующихся задач. Библиотека эта:
System.DirectoryServices.AccountManagement
Умеет она не просто всё, что требуется в повседневной жизни администратора, но делает это ещё с песнями и плясками. В общем, просто немедленно рекомендую почитать MSDN в части, касающейся данной библиотеки.

В общем, напишу для себя заметку, дабы не забыть, а там может ещё кому пригодится или даст толчок к новым знаниям.
using (PrincipalContext ctx = new PrincipalContext(ContextType.Machine))
{
    using (GroupPrincipal gp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, "Администраторы"))
    {
        using (PrincipalSearchResult results = gp.GetMembers())
        {
            foreach (var item in results)
            {
                if (item.StructuralObjectClass != null
                    && item.StructuralObjectClass.Equals("user"))
                {
                    Console.Writeline(item.SamAccountName);
                }
            }
        }
    }
}
Как можно увидеть, я воспользовался MSAM (диспетчером учётных записей безопасности компьютера).

Комментариев нет:

Отправить комментарий

Уважаемый комментатор, пишите грамотно.
С благодарностью, автор блога.