How can I set ProcessExternalMeetingMessages: $true as a default for new Mailboxes
Running Exchange 2010 R2 Rollup 2. How can I set ProcessExternalMeetingMessages: $true as a default for any new mailboxes that are created?
April 23rd, 2010 6:05pm

Use Powershell to create the resource mailboxes and set it there. Isnt that a setting reserved for resource mailboxes however?
Free Windows Admin Tool Kit Click here and download it now
April 23rd, 2010 8:09pm

I am wanting to set it is a default for UserMailboxes. I need this for our BES environment. Without this setting, any appointments originating from outside our Exchange, will show up on the Blackberry as a mail item and not an appointment.
April 23rd, 2010 8:32pm

Ok, with Powershell use the Set-CalendarProcessing command to set those when creating the new mailbox. You could script something or just pipe it in: Get-mailbox <alias> | Set-CalendarProcessing -ProcessExternalMeetingMessages: $true or do it for a whole store/server. etc..
Free Windows Admin Tool Kit Click here and download it now
April 23rd, 2010 8:41pm

If I do it for the server, would it be the CAS server or the mailbox server? I already have done this for all existing accounts, just want to make it the default so I don't have to script anything in the future.
April 23rd, 2010 9:55pm

For the whole server, pipe in the mailboxes by server or store etc..., but since you have done it for the existing mailboxes, soudns like you are covered.
Free Windows Admin Tool Kit Click here and download it now
April 23rd, 2010 10:22pm

If I do it for the server, would it be the CAS server or the mailbox server? I already have done this for all existing accounts, just want to make it the default so I don't have to script anything in the future. It would be a mailbox server and for all mailboxes in a MailboxServer Get-mailbox -server MailboxServerName | Set-CalendarProcessing -ProcessExternalMeetingMessages: $true For all mailboxes in a Mailbox Database Get-mailbox -Database "Mailbox Database" | Set-CalendarProcessing -ProcessExternalMeetingMessages: $true Also every time u create a mailbox u will have to set "ProcessExternalMeetingMessages" for it specifically. You cant make it default somewhere, except running the command after u create the mailbox. Regards, Laeeq Qazi|Team Lead(Exchange + Sharepoint + BES + DynamicsCRM) www.HostingController.com
April 24th, 2010 12:20pm

Well that just blows. I was hoping I could make it the default for new mailboxes.
Free Windows Admin Tool Kit Click here and download it now
April 26th, 2010 2:46pm

Not via EMC, but if you create the mailboxes with Powershell, absolutely!
April 26th, 2010 3:00pm

Hi, I am using Get-Mailbox -server aplmbxi -ResultSize Unlimited -Filter {recipientTypeDetails -eq 'UserMailbox'} | Set-CalendarProcessing -ProcessExternalMeetingMessages $true I would like to filter on the attribute so I wrote this [PS] C:\Windows\system32>Get-Mailbox -server xxxxxxx -Filter {ProcessExternalMeetingMessages -eq $false} Invoke-Command : Cannot bind parameter 'Filter' to the target. Exception setting "Filter": ""ProcessExternalMeetingMessages" is not a recognized filterable property. For a complete list of filterable properties see the command help. "ProcessExternalMeetingMessages -eq $false" at position 1." Is their a way to do this? Then I can run the $true against all the falses.Best wishes Michael
Free Windows Admin Tool Kit Click here and download it now
April 28th, 2012 9:09am

What you're looking for is to change the default provisioning behavior of mailboxes. In order to do that you need to use scripting agents that are called when the new-mailbox cmlets are excuted. I would post in the development forum for more guidance. Understanding the Scripting Agent http://technet.microsoft.com/en-us/library/dd297951.aspxJames Chong MCITP | EA | EMA; MCSE | M+, S+ Security+, Project+, ITIL msexchangetips.blogspot.com
April 28th, 2012 9:59am

Hi, I am using Get-Mailbox -server aplmbxi -ResultSize Unlimited -Filter {recipientTypeDetails -eq 'UserMailbox'} | Set-CalendarProcessing -ProcessExternalMeetingMessages $true I would like to filter on the attribute so I wrote this [PS] C:\Windows\system32>Get-Mailbox -server xxxxxxx -Filter {ProcessExternalMeetingMessages -eq $false} Invoke-Command : Cannot bind parameter 'Filter' to the target. Exception setting "Filter": ""ProcessExternalMeetingMessages" is not a recognized filterable property. For a complete list of filterable properties see the command help. "ProcessExternalMeetingMessages -eq $false" at position 1." Is their a way to do this? Then I can run the $true against all the falses.Best wishes Michael This command ran successfully on my Ex2010 RTM, and Ex2010 SP2. Get-Mailbox -server aplmbxi -ResultSize Unlimited -Filter {recipientTypeDetails -eq 'UserMailbox'} | Set-CalendarProcessing -ProcessExternalMeetingMessages $true You can also write above command like this $mailboxes = Get-Mailbox -server aplmbxi -ResultSize Unlimited |% {$_.recipientTypeDetails -eq 'UserMailbox'}; foreach($mailbox in $mailboxes){Set-CalendarProcessing $mailbox -ProcessExternalMeetingMessages $true} Regards,Laeeq Qazi|Team Lead(Exchange + Sharepoint + BES + DynamicsCRM) www.HostingController.com
Free Windows Admin Tool Kit Click here and download it now
April 28th, 2012 10:14am

Thanks both for the reply. The command I use does indeed work, but it returns all mailboxes. I am going to have to move another 100 mailboxes over the weekend and I now need to run the same command again against mailboxes that are already set. I would prefer to run it only against the false mailboxes, but it seems Powershell can't filter on anything, it has to be an allowed filter property and that is a shame. As James says setting the default would be even better, but I am sure their will be other examples where filtering on other settings would be helpful. Best wishes Michael
April 28th, 2012 4:48pm

Thanks both for the reply. The command I use does indeed work, but it returns all mailboxes. I am going to have to move another 100 mailboxes over the weekend and I now need to run the same command again against mailboxes that are already set. I would prefer to run it only against the false mailboxes, but it seems Powershell can't filter on anything, it has to be an allowed filter property and that is a shame. As James says setting the default would be even better, but I am sure their will be other examples where filtering on other settings would be helpful. Best wishes Michael Hi Michael, There is nothing wrong with powershell commands, and exchange has very strong powershell cmdlet set, and it's only that we are not aware how to use them. Here is the solution to your problem. $Mailboxes = get-CalendarProcessing| where {$_.ProcessExternalMeetingMessages -eq $false}; foreach($mailbox in $Mailboxes){ Set-CalendarProcessing $mailbox.Identity -ProcessExternalMeetingMessages $true} Best Regards, Laeeq Qazi|Team Lead(Exchange + Sharepoint + BES + DynamicsCRM) www.HostingController.com
Free Windows Admin Tool Kit Click here and download it now
April 28th, 2012 7:54pm

Hi Laeeq, You're a star. That is excellent. You are correct I am new to Powershell so when I find a script that works I try to use that as a starting point. The one I was using had a filter so I though filtering ProcessExternalMeetingMessages seemed a fair place to start. Can you recommend any good books to PS? Really appreciate your help. Best wishes Michael
April 29th, 2012 4:53am

Hi Laeeq, I have tried to adjust your script slightly. I believe your script will bring back all mailboxes including rooms. In the Rim technote it says not to change the meeting rooms. So did this. How does it look? This was my test to see what was returned. This seems to return user mailboxes only and those that need changing. $Mailboxes = get-CalendarProcessing| where {$_.ProcessExternalMeetingMessages -eq $false -and $_.recipientTypeDetail -eq 'UserMailbox'};foreach($mailbox in $Mailboxes){ Get-Mailbox -server xxxxxxx} This will be the script to set the attribute $Mailboxes = get-CalendarProcessing| where {$_.ProcessExternalMeetingMessages -eq $false -and $_.recipientTypeDetail -eq 'UserMailbox'};foreach($mailbox in $Mailboxes){ Set-CalendarProcessing $mailbox.Identity -ProcessExternalMeetingMessages $true} I appreciate your feedback. Best wishes Michael
Free Windows Admin Tool Kit Click here and download it now
April 29th, 2012 6:23am

Thank you to all of you who have contributed here - this thread is a big help to me. I've tried this: $Mailboxes = get-CalendarProcessing| where {$_.ProcessExternalMeetingMessages -eq $false and $_.recipientTypeDetail eq UserMailbox}foreach($mailbox in $Mailboxes){ Set-CalendarProcessing $mailbox.Identity -ProcessExternalMeetingMessages $true} but every time I enter line #1 PowerShell comes back and prompts me for the Identity: . I'm trying to loop through and affect all mailboxes (that fit the criteria), so of course I don't want to specify a specific identity. In my case I'm working with Exchange Online/Office 365 - I assume that is why the syntax above isn't working for me. How can I change the above to work? ---------------- I also want to change the AutomateProcessing property. I altered the above, to get this: $UpdateCalMailboxes = get-CalendarProcessing| where {$_.AutomateProcessing -ne AutoUpdate and $_.recipientTypeDetail eq UserMailbox);foreach($mailbox in $UpdateCalMailboxes){ Set-CalendarProcessing $mailbox.Identity -AutomateProcessing AutoUpdate} Does that look right? I assume I'll need to fix it similarly to the lines above. Thanks, Steve
May 16th, 2012 12:53am

I *think* I solved the problem I was running into. I ran this: PS C:\Windows\system32> Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize unlimited | Set-CalendarProcessing -ProcessExternalMeetingMessages $true -AutomateProcessing AutoUpdate Seemed to work OK. Do you guys see anything wrong with that command? Thanks, Steve
Free Windows Admin Tool Kit Click here and download it now
May 16th, 2012 1:17am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics