邮箱和 Active Directory 帐户创建自动化
Automation of mailbox and Active Directory account creation
我们正在考虑尝试在新人加入我们的组织并将他们输入我们的人事系统时自动创建 Exchange 2016 邮箱和关联的 Active Directory 2012 R2 帐户,写在 VB.Net 中。目前他们加入并进入系统,然后其他人必须创建邮箱和 AD 帐户,这通常有一个提前期,导致用户在一段时间内无法访问或访问受限。我们希望通过自动化流程来消除这个问题并减轻负担。
我们最初希望我们能够通过 Exchange 网络服务调用来完成此操作,不幸的是这看起来不可能。我们现在考虑的是在将用户添加到我们的人事系统时自动创建一个 powershell 脚本,然后 运行 创建邮箱和活动目录帐户。这是最好的方法吗?我们没有这方面的经验,希望确保我们走的是最明智的路线。
欢迎任何想法和反馈。
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.
}
我们正在考虑尝试在新人加入我们的组织并将他们输入我们的人事系统时自动创建 Exchange 2016 邮箱和关联的 Active Directory 2012 R2 帐户,写在 VB.Net 中。目前他们加入并进入系统,然后其他人必须创建邮箱和 AD 帐户,这通常有一个提前期,导致用户在一段时间内无法访问或访问受限。我们希望通过自动化流程来消除这个问题并减轻负担。
我们最初希望我们能够通过 Exchange 网络服务调用来完成此操作,不幸的是这看起来不可能。我们现在考虑的是在将用户添加到我们的人事系统时自动创建一个 powershell 脚本,然后 运行 创建邮箱和活动目录帐户。这是最好的方法吗?我们没有这方面的经验,希望确保我们走的是最明智的路线。
欢迎任何想法和反馈。
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.
}