Иногда вы хотите написать электронное письмо всем пользователям, которые в данный момент находятся в офисе. Теперь вы можете просто вставить все адреса электронной почты в письмо, но вы можете не знать, кто находится в офисе, и кого-то забыли.
Другое решение - написать электронное письмо группе безопасности. Но это также будет отправлено по электронной почте пользователям, которые находятся в отпуске.
Я знаю, что вы можете видеть сеансы на файловом сервере, а также открытые файлы. Могу ли я использовать эту информацию, чтобы получить всех пользователей, которые в данный момент вошли в систему? И как я мог открыть письмо со всеми этими пользователями, заполненными в поле «Кому» письма (может быть, с каким-то пакетным файлом)?
Это довольно просто. В AD есть метка lastloggedontimestamp.
Я все еще использую Quest AD CmdLets, но вы можете переделать его для работы со стандартным модулем ActiveDirectory.
Обычно вы получаете «сегодня», а затем просматриваете всех, у кого время последнего входа в систему соответствует сегодняшнему.
$today = (Get-Date).day
get-qaduser | where { $_.lastlogontimestamp.day -eq $today } | select samaccountname, lastlogontimestamp, Email
Это не идеально, и я могу думать об улучшениях, но он соответствует вашим требованиям
Вам нужно будет опросить каждую рабочую станцию и сервер в вашей среде на предмет текущего вошедшего в систему пользователя, а оттуда извлечь адрес электронной почты из каждого объекта пользователя AD. Я бы рекомендовал написать сценарий для этого решения.
Но опять же, это много потраченных впустую усилий, когда отправка в группу «Все» не так уж и неудобна.