Exchange 2010–Default mailbox settings (user provisioning)

A customer needed to have specific mailbox feature settings on all of there mailboxes. The customer needed the following settings on all mailboxes:
  • Disable IMAP and POP
  • Enable OWA and ECP
  • Disable OutlookAnywhere
  • Allow Connected mode in Exchange
  • Enable ActiveSync
This is easy to do on all provisioned (already created) mailboxes with a PSH script:
get-mailbox * -resultsize unlimited | set-casmailbox -ImapEnabled:$false -POPEnabled:$false -OWAEnabled:$true
-MAPIBlockOutlookRpcHttp:$true -MAPIBlockOutlookNonCachedMode:$false -ActiveSyncEnabled:$true
The customer also stated that all new mailboxes should have these settings upon creation. The solution is to use the Scripting Agent Cmdlets in Exchange 2010. This is what I did to solve the customer case:
  1. Created the ScriptingAgentConfig.xml (this must be on all Exchange servers) in the C:\Program Files\Microsoft\Exchange Server\V14\Bin\CmdletExtensionAgents
  2. Enabling the “Scripting Agent”
    Enable-CmdletExttensionAgent “Scripting Agent”
Below is my syntax of my “ScriptingAgentConfig.xml” file:
<?xml version="1.0" encoding="utf-8" ?>
  <Configuration version="1.0">
  <Feature Name="MailboxProvisioning" Cmdlets="New-Mailbox">
  <ApiCall Name="OnComplete">
      If($succeeded) {
        $Name= $provisioningHandler.UserSpecifiedParameters["Name"]
        set-casmailbox -identity $Name -ImapEnabled:$false
        set-casmailbox -identity $Name -POPEnabled:$false
        set-casmailbox -identity $Name -OWAEnabled:$true
        set-casmailbox -identity $Name -MAPIBlockOutlookRpcHttp:$true
        set-casmailbox -identity $Name -MAPIBlockOutlookNonCachedMode:$false
        set-casmailbox -identity $Name -ActiveSyncEnabled:$true

      }
  </ApiCall>
  </Feature>
  </Configuration>
Links

1 comment:

Jer said...

Typo: (extra t)
Enable-CmdletExttensionAgent “Scripting Agent”