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

Рабочий процесс нового пользователя Active Directory

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

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

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

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

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

Чтобы немного помочь с письмом от 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, $ recipient и $ mailserver.

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

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

Чтобы ответить на ваш прямой вопрос, да, вы можете создать сценарий 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, поиска новых объектов пользователей и отправки вам списка, усилия, связанные даже с проверкой нового пользователя, требуют следующего шага в вашем рабочем процессе, когда у вас есть новое электронное письмо (о чем об учетных записях, которые были повторно созданы из-за ошибки?) было бы больше, чем просто заставить администратора следовать описанному вами процессу. Это администратор должен спрашивать, как автоматизировать свою электронную почту, а не вы ищете способ увидеть, что он это сделал. Вам необходимо решить проблемы, связанные с вашим процессом, прежде чем вы сможете думать об их автоматизации.