Назад | Перейти на главную страницу

Как получить всех зарегистрированных пользователей в среде активного каталога?

Иногда вы хотите написать электронное письмо всем пользователям, которые в данный момент находятся в офисе. Теперь вы можете просто вставить все адреса электронной почты в письмо, но вы можете не знать, кто находится в офисе, и кого-то забыли.

Другое решение - написать электронное письмо группе безопасности. Но это также будет отправлено по электронной почте пользователям, которые находятся в отпуске.

Я знаю, что вы можете видеть сеансы на файловом сервере, а также открытые файлы. Могу ли я использовать эту информацию, чтобы получить всех пользователей, которые в данный момент вошли в систему? И как я мог открыть письмо со всеми этими пользователями, заполненными в поле «Кому» письма (может быть, с каким-то пакетным файлом)?

Это довольно просто. В AD есть метка lastloggedontimestamp.

Я все еще использую Quest AD CmdLets, но вы можете переделать его для работы со стандартным модулем ActiveDirectory.

Обычно вы получаете «сегодня», а затем просматриваете всех, у кого время последнего входа в систему соответствует сегодняшнему.

$today = (Get-Date).day
get-qaduser | where { $_.lastlogontimestamp.day -eq $today } | select samaccountname, lastlogontimestamp, Email

Это не идеально, и я могу думать об улучшениях, но он соответствует вашим требованиям

Вам нужно будет опросить каждую рабочую станцию ​​и сервер в вашей среде на предмет текущего вошедшего в систему пользователя, а оттуда извлечь адрес электронной почты из каждого объекта пользователя AD. Я бы рекомендовал написать сценарий для этого решения.

Но опять же, это много потраченных впустую усилий, когда отправка в группу «Все» не так уж и неудобна.