Понадобилось вот мне (точнее не мне :-) ) получить список администраторов и опытных пользователей на локальных машинах. Для получения требуемой информации сначала хотел использовать 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 (PrincipalSearchResultresults = gp.GetMembers()) { foreach (var item in results) { if (item.StructuralObjectClass != null && item.StructuralObjectClass.Equals("user")) { Console.Writeline(item.SamAccountName); } } } } }
Как можно увидеть, я воспользовался MSAM (диспетчером учётных записей безопасности компьютера).
Комментариев нет:
Отправить комментарий
Уважаемый комментатор, пишите грамотно.
С благодарностью, автор блога.