Всех категорически приветствую!
В данной статье я расскажу как безошибочно найти пользователя в AD по фамилии и имени пользователя, по логину, учтём момент, если в AD есть сразу 2 таких пользователя с одинаковыми именами.
Зачем нужно
При написании скриптов всегда хочется иметь под рукой функцию, которая со 100% вероятностью выдаст тебе правильного пользователя в AD, при этом ты не будешь заморачиваться о пользователях с одинаковыми фамилиями или именами.
Скрипт
Сначала импортируем библиотеку Custom-Library. Взять её можно отсюда. Она нам тут нужна для wr функции (статья о ней), подключаем её из своего расположения.
Import-Module " C:\Custom-Library.ps1"
Разделим задачу по написанию этой большой функции на маленькие подфункции, где я подробно опишу каждую строчку:
- объявляем параметры нашей функции
- вспомогательная функция для обработки выбранного нами OU, она должна возвратить нам DN поиска
- функция для поиска по имени
- ф-я поиска по логину
Все вспомогательные функции написаны. Теперь логика
Покажу несколько выводов результата работы:
wr "по фамилии имени"
Get-User-from-AD -user "петров ев" -OU NotVPN
wr "по логину"
Get-User-from-AD -user petrov_ev -OU NotVPN
wr "только по фамилии и совпадений много"
Get-User-from-AD -user петров -OU NotVPN
wr "ошибочный поиск"
Get-User-from-AD -user пывавааа -OU NotVPN
Полный код опубликован тут .
Итоги. Логика работы.
- Мы сначала ищем по Фамилии Имени, если найден один, то мы его возвращаем. Если пользователей найдено больше одного, то выводим список всех и просим ввести логин нужного юзера.
- Если первоначально поиск по ФИ не дал результата то будет поиск по логину. Если по логину не найден, то функция завершает свою работу и прекращает работу скрипта в целом (последний exit), это иногда полезно для прекращения работы в других скриптах, т.е. без юзера скрипт дальше не работает.
- Можно также использовать другой контроллер домена для поиска в другом домене.
В данном скрипте я использовал библиотеку, куда в будущем буду дописывать различные функции и использовать их в новых статьях. Эту функцию я также добавляю в эту библиотеку.
О функции wr можно почитать в статье.
Спасибо за внимание. Посмотрите на моём канале другие полезные статьи, может они вам помогут решить ваши задачи.