Monthly Archives: January 2010

BlackBerry Enterprise Server and Exchange Server 2010 Throttling Policies

One of the new features in Exchange Server 2010 is the concept of Client Throttling Policies. In summary, Client Throttling Policies are designed to limit the amount of system resources a given user can consume and in turn impact performance for other Exchange users. Out of the box there is a default throttling policy (use the Get-ThrottlingPolicy cmdlet) applied to all users:

RunspaceId                     : ba3cdf92-fc9f-4a70-a912-2cf225e6d573
IsDefault                      : True
EASMaxConcurrency              : 10
EASPercentTimeInAD             :
EASPercentTimeInCAS            :
EASPercentTimeInMailboxRPC     :
EWSMaxConcurrency              : 10
EWSPercentTimeInAD             :
EWSPercentTimeInCAS            :
EWSPercentTimeInMailboxRPC     :
EWSMaxSubscriptions            :
EWSFastSearchTimeoutInSeconds  : 60
EWSFindCountLimit              :
IMAPMaxConcurrency             :
IMAPPercentTimeInAD            :
IMAPPercentTimeInCAS           :
IMAPPercentTimeInMailboxRPC    :
OWAMaxConcurrency              : 5
OWAPercentTimeInAD             :
OWAPercentTimeInCAS            :
OWAPercentTimeInMailboxRPC     :
POPMaxConcurrency              : 20
POPPercentTimeInAD             :
POPPercentTimeInCAS            :
POPPercentTimeInMailboxRPC     :
PowerShellMaxConcurrency       : 18
PowerShellMaxCmdlets           :
PowerShellMaxCmdletsTimePeriod :
ExchangeMaxCmdlets             :
PowerShellMaxCmdletQueueDepth  :
RCAMaxConcurrency              : 20
RCAPercentTimeInAD             :
RCAPercentTimeInCAS            :
RCAPercentTimeInMailboxRPC     :
MessageRateLimit               :
RecipientRateLimit             :
ForwardeeLimit                 :
CPUStartPercent                : 75
AdminDisplayName               :
ExchangeVersion                : 0.10 (
Name                           : DefaultThrottlingPolicy_f017f530-3edf-4c59-9955-d94bb7892fb0
DistinguishedName              : CN=DefaultThrottlingPolicy_f017f530-3edf-4c59-9955-d94bb7892fb0,CN=Global Settings,CN=
                                 GreenOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=green,DC=briandesmond,D
Identity                       : DefaultThrottlingPolicy_f017f530-3edf-4c59-9955-d94bb7892fb0
Guid                           : af1aeaac-4d88-43da-92df-24c0924d4ad8
ObjectCategory                 :
ObjectClass                    : {top, msExchGenericPolicy, msExchThrottlingPolicy}
WhenChanged                    : 10/10/2009 5:44:29 PM
WhenCreated                    : 10/10/2009 5:44:11 PM
WhenChangedUTC                 : 10/10/2009 10:44:29 PM
WhenCreatedUTC                 : 10/10/2009 10:44:11 PM
OrganizationId                 :
OriginatingServer              :
IsValid                        : True


As you can see, most of the valuesa re null, however each of the services has a *MaxCurrency property. These define the maximum number of connections a given user can have to that service. For example, the EASMaxConcurrency value limits a given user to a maximum of ten Exchange ActiveSync connections. Each of the values is documented in the Set-ThrottlingPolicy cmdlet documentation. Of particular note to this discussion is the RCAMaxConcurrency value which defines the maximum number of concurrent connections a given user can have to the RPC Client Access service. The RPC Client Access service is new in Exchange 2010 and it handles all MAPI connections to Exchange.

BlackBerry Enterprise Server (BES) uses a single service account to proxy all of the connections to Exchange on behalf of BlackBerry users. The side effect of this is that it’s quite likely that BES will need to have more than twenty (default limit) connections open to Exchange at a given time. If you review the documentation from RIM, they recommend setting the RCAMaxConcurrency value to null (equivalent to unlimited) for all users. This is really not a great idea at all.

Instead, what you can do is define a new Client Throttling Policy without an RCAMaxConcurrency value and apply it directly to the BES service account. The PowerShell script below does just that. The script assumes that your BES service account is called “BESAdmin”. If it isn’t modify the script accordingly.

New-ThrottlingPolicy "BES Throttling Policy" -RCAMaxConcurrency:$null
Set-Mailbox besadmin -ThrottlingPolicy "BES Throttling Policy"

You can easily confirm that the new policy is applied to the BESAdmin account by inspecting the properties of BESAdmin mailbox:

Get-Mailbox besadmin | fl Name,ThrottlingPolicy

You should see results similar to the following:

Name             : BES Admin
ThrottlingPolicy : BES Throttling Policy

How to Create an ActiveSync Device Report

Exchange logs quite a bit of info about ActiveSync device partnerships and you can use this to create reports about the utilization of mobility features in your organization. Getting this data requires a couple of intermediate steps before you can export it to a CSV for processing in something like Excel (or another script). The PowerShell script below will export all of the ActiveSync device relationships in your organization. Keep in mind that this will include old relationships which are no longer active. Depending on how large your organization is and the number of device relationships out there, it may take a little while for the script to run.

Note: If you have a mixed version organization (e.g. Exchange 2007 and Exchange 2010), you’ll need to run the script twice. Once in the Exchange 2007 Management Shell and once in the Exchange 2010 Management Shell. The cmdlets used here are not backwards (or forward compatible). I’ve provided two versions of the script – one for Exchange 2007 and one for Exchange 2010.

Exchange 2007 Version

$devices = @()
$mailboxes = Get-CASMailbox -ResultSize:Unlimited | Where-Object {$_.HasActiveSyncDevicePartnership -eq $true -and $_.ExchangeVersion.ExchangeBuild -ilike "8*"}

foreach ($m in $mailboxes) 
	$devices += Get-ActiveSyncDeviceStatistics -Mailbox $m.Identity

$devices | Export-Csv DeviceStats.csv

Exchange 2010 Version

$devices = @()
$mailboxes = Get-CASMailbox -ResultSize:Unlimited | Where-Object {$_.HasActiveSyncDevicePartnership -eq $true -and $_.ExchangeVersion.ExchangeBuild -ilike "14*"}

foreach ($m in $mailboxes) 
	$devices += Get-ActiveSyncDeviceStatistics -Mailbox $m.Identity

$devices | Export-Csv DeviceStats.csv

You can open the exported CSV in Excel from here and generate reports based on that. There is quite a bit of information in the report including some personally identifiable information (PII) for the devices so keep that in mind before redistributing the raw data file.

Livro SCOM 2007 R2 Unleashed (Mais Informações)

Após o lançamento do primeiro livro, SCOM 2007 Unleashed, tivemos uma grande mudança no SCOM com a versão R2, adição de muitas novas funcionalidades e correções, logo era perceptível a necessidade de uma literatura complementar para o SCOM 2007 R2. Foi pensando nisso que a autora Kerrie Meyler começou a elaborar a extensão do livro e surgiu a idéia do e-book SCOM 2007 R2 Unleashed. Desta vez ela convidou algumas pessoas para ajudar com o conteúdo e eu fiquei responsável pela parte de Service Level Monitoring. Com previsão para lançamento em 03/2010 (com venda na Amazon e nas principais livrarias internacionais), durante os 9 novos capítulos  o e-book trás os seguintes assuntos:


1.    Introduction and What’s New

2.    Unix/Linux Management: Cross Platform Extensions

3.    Operations Manager 2007 R2 and Windows Server 2008

4.    Using SQL Server 2008 in OpsMgr 2007 R2

5.    PowerShell Extensions for Operations Manager 2007

6.    Management Solutions for Small and Midsize Business

7.    Operations Manager and Virtualization

8.    Management Pack Authoring

9.    Unleashing Operations Manager 2007


·         Appendix A. OpsMgr R2 by Example

·         Appendix B. Reference URLs

·         Appendix C. Available Online



E a versão impressa do novo livro ou do livro atualizado, sai ou não sai? Isso vai depender muito da procura e interesse do público, fique antenado neste lançamento J



Obrigado pela leitura e até a próxima publicação,



Cleber Marques

Microsoft MVP & MCT | Charter Member: SCVMM & MDOP
Projeto MOF Brasil: Simplificando o Gerenciamento de Serviços de TI
Meu Blog | | |

Small Update to Redirection Blog

Last week, I posted about how to redirect HTTP connects to Exchange 2010 OWA to HTTPS. There was a small issue in the post which I’ve now corrected. If you explicitly disabled HTTP Redirection for the OWA virtual directory, you would break the /exchange, /public, and /exchweb virtual directories which redirect to /owa.

If you browse to, you might see the following event in the Application log of your CAS server:

Log Name:      Application
Source:        ASP.NET 2.0.50727.0
Date:          1/31/2010 2:20:16 PM
Event ID:      1310
Task Category: Web Event
Level:         Warning
Keywords:      Classic
User:          N/A

Event code: 3008
Event message: A configuration error has occurred.
Event time: 1/31/2010 2:20:16 PM
Event time (UTC): 1/31/2010 10:20:16 PM
Event ID: 1dd0ff95241040a48b5acc09bff2e3ad
Event sequence: 32
Event occurrence: 31
Event detail code: 0 
Application information:    
Application domain: /LM/W3SVC/1/ROOT-2-129092586348966635    
Trust level: Full    
Application Virtual Path: /    
Application Path: C:inetpubwwwroot    
Machine name: CAS01
Process information:    
Process ID: 2268    
Process name: w3wp.exe    
Account name: IIS APPPOOLDefaultAppPool 
Exception information:    
Exception type: ConfigurationErrorsException    
Exception message: It is an error to use a section registered as allowDefinition=’MachineToApplication’ beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS. (C:ExchangeClientAccessowaweb.config line 31) 
Request information:    
Request URL: http://localhost/exchange/default.aspx    
Request path: /exchange/default.aspx    
User host address:    
Is authenticated: False    
Authentication Type:     
Thread account name: IIS APPPOOLDefaultAppPool 
Thread information:    
Thread ID: 19    
Thread account name: IIS APPPOOLDefaultAppPool    
Is impersonating: False    
Stack trace:   
   at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   at System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName)
   at System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index)
   at System.Web.Configuration.RuntimeConfig.get_Identity()
   at System.Web.HttpContext.SetImpersonationEnabled()
   at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)

To resolve this, open the web.config file for OWA. The path is in the event. I highlighted it in red boldface font above so you know where to look. Inside of the web.config file, search for and remove this line:

<httpRedirect enabled="false" />

Warning: Improperly editing the web.config file for OWA could render it entirely inoperable. I highly recommend that you save a backup prior to making any changes to the file., le site pour les parents des enfants du web

Bonsoir Ă  tous,


Connaissez-vous le site C’ ?

Ce site est un guide en ligne interactif et ludique destiné aux parents pour les aider à mieux accompagner la vie numérique de leurs enfants.

Conçu avec le soutien des associations de protection de l’enfance, le site propose aux parents des parcours de formation personnalisés sur l’ensemble
des usages numériques de leurs enfants (surfer, chatter, jouer en ligne, etc.). Animations, quizz, micro-trottoir, interviews d’experts…

Le site permet de se former en s’amusant, tout en bénéficiant de conseils pédagogiques très concrets et de fiches pratiques, pour apprendre à éviter les risques.

Par ailleurs, vous apprécierez certainement les fiches pratiques, techniques ou pédagogiques, spécialement destinées aux parents. N’oubliez pas également, le dialogue et l’information ainsi qu’une part de confiance pour que la vie sur internet ne devienne pas le cauchemar des petits et des grands.

Après une première visite, vous y reviendrez tant les informations contenues sont extrêmement intéressantes pour les parents pas toujours rompus à l’administration de la sécurité d’un système d’exploitation.

Bonne soirée et bonne semaine.

DDD 8 Entity framework follow up – Will cast(column as int) allow use of an index


I pointed out yesterday that the EntityFramework doesn't like smallints. Well it does and it doesn't The model handles them fine and the objects have datatypes of int16 which is great.

However the queries that are generated do this odd thing with any predicates on such columns. It applies a cast to column.i.e

where cast(col2 as int)= @d

At first glance I thought oh now not another screw up with the SQL from Entity framework, but on inspection of a query plan where the column in question was indexed I still got a seek operation. Very nice, well done optimisation team.

When I pointed this out, I was asked whether this worked on SQL2005. Having only got a SQL2008 instance on my laptop I took the question away for testing. The reason of the question could be related to the fact that in SQL 2008 the introduced the ability to cast a datetime to a date to be able to look for specific days of data and still use an index.

I have now tested and can state that it does work on SQL 2005.


El Llenguatge dels ordinadors (Proximo evento en Vic)

El Llenguatge dels ordinadors

Dijous de 11 de Febrer del 2010 a les 20h (Durada aproximada 1:30min)

1ra Part – Introducció

Informació general
Dedicarem aquesta primera sessió a fer un recorregut entorn a l’evolució dels sistemes operatius i els llenguatges de programació tot posant especial èmfasis en la part mes filosòfica del desenvolupament d’aplicacions.

Entorn: Sistemes Operatius i Llenguatges
Audiència : Públic en General 

Biblioteca Joan Triadú
Arquebisbe Alemany 5

08500 VIC

Conduit :


Pep Lluis Bano

Spain.Net Leader
INETA Regional Speaker
MVP– Visual Developer


Visual Basic – Que hay de nuevo viejo?

Me complace poner a vuestra disposición la ultima charla realizada en Tarragona, compartiendo cancha con los profesionales más significativos en Visual Basic de nuestro país… espero sea de vuestro agrado.


Pep Lluis,

Save Energy when Running Your PC with ASUS EPU-6 Engine Utility

Windows 7 – The Pocket Guide | Get FREE books (Password: ilikefree) ASUS has a unique software called EPU-6 Engine that monitors your energy consumption and CO2 emissions of your system. I have utilized this software and have found it to be dependable and beneficial. It allows the system to exhibit minimal cooling to maximum cooling, [...]

The Barry Dorrans’ farewell DDD performance

Seems I missed an interesting  at session at DDD8, Barry Dorrans’ final DDD performance, with assistance with of other speakers.

Barry you will be missed

Recent Comments