Active Directory новый пользовательский рабочий процесс

Я работаю в небольшой организации, которая использует один файловый сервер и сервер печати с доменом Active Directory для управления пользователями.

Администратор офиса, который привлекает новых людей, не является техническим специалистом и обычно создает учетную запись пользователя AD, потому что нет постоянной ИТ-поддержки на месте, и пользователям нужны их учетные записи немедленно. Тем не менее, есть последующая работа, которую необходимо выполнить после этого (создание расширения на УАТС, настройка голосовой почты, заполнение форм и т. Д., И т. Д.), Которую необходимо передать различным людям.

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

По сути, мне кажется, что мне нужен способ генерировать уведомления по электронной почте при создании нового пользователя в Active Directory вручную - своего рода облегченный механизм рабочего процесса, который просто отправляет электронное письмо людям и / или моей системе создания билетов с последующими задачами, которые необходимо выполнить. Да, я знаю, что это не лучшая практика, да, я знаю, что это не круто, но, учитывая мою ситуацию, я думаю, что это самое прагматичное решение.

Есть ли простой, легкий способ сделать это? Я думаю о сценарии PowerShell или о чем-то в этом роде (для надлежащей системы IDM нет бюджета, и, как я уже говорил, бизнес-процесс неизменен).

4 ответа

Чтобы немного помочь с электронной почтой от Powershell. Я использовал System.Net.Mail.SmtpClient отправить с powershell.

$Mail = New-Object System.Net.Mail.MailMessage($Sender,$Recipient)
$Mail.IsBodyHTML = $True

## Setup SMTP Mail Server info
$MailClient = New-Object System.Net.Mail.SmtpClient
$MailClient.Host = $Mailserver


$Mail.Subject = "Subject"
$Mail.Body = "blah blah blah"

# Send the message
$MailClient.Send($Mail)
}

Вам нужно будет указать $Sender, $ получатель и $ почтовый сервер.

Так что это больше проблема процесса, чем технологическая проблема. Мне кажется, что у вас нет какой-то системы продажи билетов. Я настоятельно рекомендую установить один на место, так как это поможет и другим областям. Достойные системы позволят вам настроить рабочий процесс, который позволит вам "протолкнуть" билет следующему человеку в очереди, как только ваша работа будет завершена.

В худшем случае вы могли бы вручную создать поток, переместив билет и имея "владельца", которому его возвращают, чтобы перейти к следующему человеку.

Чтобы ответить на ваш прямой вопрос, да, вы можете создать сценарий Powershell, который создаст пользователя AD, затем вы можете отправлять почту - вам еще не приходилось делать это в Powershell v2, но в V1 вам пришлось погрузиться в объекты.Net. отправить письмо, но это не так сложно (get-object - ваш друг)

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

Если вы правильно отформатируете письмо, включая все этапы вашего рабочего процесса, то первый получатель может прокомментировать свою задачу (или зачеркнуть текст), а затем переслать письмо дальше.

Несмотря на то, что он не эффективен для немедленной передачи новых сотрудников, он:

  1. просто
  2. Эффективен в общении для малого бизнеса
  3. Очень мало ресурсов

Вот PowerShell, который вы можете использовать, чтобы найти имена пользователей, созданных за последний час:

$date = [datetime]::UtcNow.addhours(-1)
$lasthour = "{0:0000}{1:00}{2:00}{3:00}{4:00}{5:00}.0Z" -f $date.year,$date.month,$date.day,$date.hour,$date.minute,$date.second

$strFilter = "(&(objectCategory=User)(whenCreated>=$lasthour))"


$objDomain = New-Object System.DirectoryServices.DirectoryEntry

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter

$colProplist = "name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}

$colResults = $objSearcher.FindAll()

foreach ($objResult in $colResults)
    {$objItem = $objResult.Properties; $objItem.name}

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

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

То, что вы действительно просите, это новый администратор AD. Хотя технически возможно создать сценарий для опроса изменений AD, поиска новых пользовательских объектов и отправки вам списка, усилия, связанные даже с проверкой нового пользователя, требуют следующего шага в вашем рабочем процессе, о котором у вас есть новое электронное письмо (о чем о счетах, которые восстанавливаются из-за ошибки?) было бы больше, чем просто заставить администратора следовать описанному вами процессу. Администратор должен спрашивать, как автоматизировать его электронную почту, а не искать, чтобы убедиться, что он это сделал. Вам нужно решить проблемы с процессом, прежде чем вы сможете подумать об их автоматизации

Другие вопросы по тегам