Автоматизация создания почтового ящика и Active Directory
Мы пытаемся автоматизировать создание почтовых ящиков Exchange 2016 и связанной с ним учетной записи Active Directory 2012 R2, когда в нашу организацию вступает новый человек, и они вводятся в нашу систему персонала, как написано в VB.Net. В настоящее время они присоединяются и вводятся в систему, затем кто-то другой должен создать почтовый ящик и учетную запись AD, которая часто имеет время выполнения заказа, что приводит к тому, что пользователи не имеют или имеют ограниченный доступ в течение периода. Мы надеемся устранить эту проблему и снизить нагрузку за счет автоматизации процесса.
Первоначально мы надеялись, что сможем сделать это с помощью вызовов веб-службы Exchange, к сожалению, это не представляется возможным. Теперь мы рассматриваем автоматическое создание сценария powershell, когда пользователь добавляется в нашу систему персонала, которая затем запускается для создания почтовых ящиков и учетных записей активных каталогов. Это лучший подход? У нас нет опыта в этом, и мы хотим быть уверенными, что мы идем по самому разумному маршруту.
Любые мысли и отзывы приветствуются.
1 ответ
Powershell - лучший подход. Вы можете запустить запланированное задание, которое берет вызов базы данных в вашу ERP, чтобы найти каких-либо новых пользователей, или вы можете экспортировать CSV-атрибуты для создания учетной записи.
На базовом уровне вот рамки кода:
$Data = Import-CSV "c:\path\to\datafile.csv"
foreach ($user in $data) {
$TargetOU = "OU=CompanySite,DC=example,DC=domain,DC=com" #Use this for where to create the Accounts
#Note: You need to either generate a random password or supply one via the import. I recommend random generation and then have the user set one when the arrive.
New-ADUser -SamAccountName $user.username -GivenName $user.FirstName -Surname $user.LastName -AccountPassword $password -Path $TargetOU -etc -etc -etc #You can set as many attributes as you'd like at creation
Sleep 10 #allow for propogation of account to all DCs
Enable-Mailbox -Identity $user.username -Alias $user.username -Database "only needed if you specify a database manually"
Set-Mailbox -etc -etc #use for anything that needs to be configured after the mailbox is enabled.
}