我断断续续地搜索了几天互联网才找到这个。我正在创建一个 powershell 脚本,用于为新用户启用电子邮件(Exchange 2007)。
当我们有新员工时,我们会向您提供一些背景信息,我们会在我们的异地帮助台创建他们的 AD 帐户,但他们不会创建自己的电子邮件帐户。
我正在尝试自动化用户邮件启用过程,其中包括将他们放在与现有用户相同的数据库中,禁用 imap pop activesync,最后向票证请求者发送电子邮件。
我希望在创建新用户后提示输入新用户的名称、要复制的用户(邮箱、存储组、数据库)以及要发送电子邮件的人员。
因此,如果有人能帮助使用 powershell 中的命令来检索用户的 Exchange 数据库,那就太好了,但是如果有人也想帮助我破解脚本,也请这样做!!!
以下是我目前所掌握的信息:
Write-output “ENTER THE FOLLOWING DETAILS”
$DName = Read-Host “User Diplay Name"
$RUser = Read-Host "Replicate User(Database Grab)"
$RData = #get the Replicate user's mailbox database here
$REmail = #either just use a Read-Host “Requester's Email address" or ask for Requester's name and pipe through their email address by digging for it w/ powershell
Enable-Mailbox -Identity "$DName" -Database "$RData"
Send-MailMessage -From "John Doe <[email protected]>" -To (put $REmail here which is the Requester's email) -Subject "Test Person's email account" -Body "Test Person's email account has been setup.`n`n`nJohn Doe`nGeneric Company`nSystems Administrator`nOffice: 123.456.7890`[email protected]" -SmtpServer genericexchange.exchange.com
答案1
这应该会让你走上正确的轨道,需要注意的是你需要 AD powershell 东西才能工作;这至少需要一个 2008R2 DC。
GetADUser -Identity "$RUser" -Properties homeMDB
附注:请谨慎使用自动格式化的方向引号 - 我不知道 Powershell 是否可以很好地处理它们,但它们确实对 StackExchange 的代码着色产生了影响。
我并不羡慕您尝试在 powershell 中执行此操作 - 请小心验证用户可输入的输入,并记录命令的结果。
编辑:您知道吗,AD 中的该属性可能不会按照 Exchange 的要求格式化。请尝试以下方法(不需要 2008R2):
$RData = (Get-User -Identity "$RUser" | Get-Mailbox | Select-Object Database)
答案2
官方脚本专家论坛上的 Karl Mitschke!能够解决我的难题!
$RData = ((获取邮箱-Identity $RUser).数据库).DistinguishedName
链接在这里:http://social.technet.microsoft.com/Forums/en/ITCG/thread/499deabf-a12d-470a-8773-b11ffa9c8694
再次感谢卡尔!!!
答案3
Write-output “ENTER THE FOLLOWING DETAILS”
$DName = Read-Host “User Diplay Name"
$RUser = Read-Host "Replicate User(Database Grab)"
$RData = ((Get-Mailbox -Identity $RUser).Database).DistinguishedName
$REmail = Read-Host “Requester's Email Address"
Enable-Mailbox -Identity "$DName" -Database "$RData"
Set-CASMailbox -Identity "$DName" -ActiveSyncEnabled $false -ImapEnabled $false -PopEnabled $false
Send-MailMessage -From "John Doe <[email protected]>" -To $REmail -Subject "$DName's email account" -Body "$DName's email account has been setup.`n`n`nJohn Doe`nGeneric Co.`nSystems Administrator`nOffice: 123.456.7890`[email protected]" -SmtpServer GenericCo.Generic.com
这是我接近最终的版本。我尝试只询问请求者的姓名,而不是完整的电子邮件地址,并使用 powershell 命令来检索它。
这是我最接近的一次。想知道它是否没有正确传递地址?
$REmailInput = Read-Host “Requester's Name(Notification Email goes to this Person)"
$REmail = Get-Mailbox -Identity "$REmailInput" | Select-Object PrimarySmtpAddress