在PowerShell中检索用户的Exchange数据库

我已经search了几天的互联网,现在就去找这个。 我正在为启用电子邮件的新用户创build一个PowerShell脚本(Exchange 2007)。

为了让我们有一个新的雇用背景,他们的AD帐户是在我们的现场服务台创build的,但他们不创build他们的电子邮件帐户。

我试图自动化邮件启用用户的过程,包括将它们放在与现有用户相同的数据库中,禁用imap pop activesync,最后通过电子邮件发送请求者的故障单。

我想只是提示新build用户的名称,复制用户(邮箱,存储组,数据库)和创build后发送电子邮件的人员。

所以如果有人可以帮助一个命令来检索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 

这应该让你在正确的轨道上,需要注意的是,你需要的AD PowerShell的东西工作; 这需要至less一个2008R2 DC。

 GetADUser -Identity "$RUser" -Properties homeMDB 

在附注中,请注意您的单词自动格式化的方向引号 – 我不知道Powershell是否适合这些,但他们确实在StackExchange的代码着色上做了一个数字。

我不羡慕你试图在PowerShell中做到这一点 – 要小心validation用户可input的input,并logging命令的结果。

编辑:你知道什么,从AD的财产可能不会被格式化如何交换想要它。 试试这个(而不需要2008R2):

 $RData = (Get-User -Identity "$RUser" | Get-Mailbox | Select-Object Database) 

Karl Mitschke在“官方脚本专家论坛”上发言! 能解决我的困境!

$ RData =((Get-Mailbox -Identity $ RUser).Database).DistinguishedName

这里是链接: http : //social.technet.microsoft.com/Forums/en/ITCG/thread/499deabf-a12d-470a-8773-b11ffa9c8694

再次感谢卡尔!

 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 

这是我最近的最后的构build。 我试图只要求请求者的名字,而不是整个电子邮件地址,并有一个PowerShell命令来检索它。

这是最接近的我来了。 想知道是不是正确地交出地址?

 $REmailInput = Read-Host “Requester's Name(Notification Email goes to this Person)" $REmail = Get-Mailbox -Identity "$REmailInput" | Select-Object PrimarySmtpAddress