Monday, October 19, 2015

Create Exchange Address Lists

For quick creation of exchange address lists, EAC or EMC can be used, when only a subset of AD attributes are needed for creating filter (AD container, State or Province, Company, Department, ExchangeAtribute1-15). If these attributes does not meet your needs for creating filter, Exchange Powershell is your friend. New-AddressList contains RecipientFilter parameter for creating advanced queries for filtering recipients. For more info about filterable properties that can be used in RecipientFilter parameter please check the following article : https://technet.microsoft.com/library/bb738157(EXCHG.80).aspx .

For example:
New-AddressList -Name TestList -RecipientFilter {((Alias -ne $null) -and (((Recipienttype -eq 'UserMailbox') -or (Recipienttype -eq 'MailUniversalDistributionGroup') -or (Recipienttype -eq 'MailUniversalSecurityGroup') -or (Recipienttype -eq 'PublicFolder')) -or ((Recipienttype -eq 'MailContact') -and (ExternalEmailAddress -like '*domain.com'))))}
In this example, TestList address list is created with following requirements: Alias is set and recipient types are UserMailbox, UniversalDistributionGruoup, UniversalSecurityGroup, Publicfolder and only Mailcontacts that have domain.com in their External Email Address.
 

Slow User Experience on Every Logon

In this case a colleague of mine was complaining that every time she reboots the workstation with Windows 8.1 x64 installed, and successfully login, she will have to wait for about 10 minutes before the operating system becomes responsive again and the disk utilization for these 10 minutes was 100%.
Process responsible for this high disk utilization was taskhostex.exe. Taskhostex.exe and taskhost.exe are host processes for Windows Tasks. For example, these three tasks are running under taskhostex.exe:



Wininet Cache Task is triggered whenever user is logged on. During my colleague's logon, the disk was heavily utilized by the taskhostex.exe and a file with most disk reads and disk writes operations was WebCacheV01.dat located on C:\users\userprofile\AppData\Local\Microsoft\Windows\WebCache. Starting from Internet Explorer 10, browser cache is stored in this database instead in index.dat as was in previous editions of Internet Explorer.
In this case, my colleague's WebCacheV01.dat was around 3GB (Initial size is around 20-30 MB).
In order to improve my colleague's logon experience, I've killed the taskhostex.exe process (Internet Explorer was already closed), and deleted the contents of  C:\users\userprofile\AppData\Local\Microsoft\Windows\WebCache and rebooted the workstation.
After the reboot, my colleague has logged on successfully with low disk utilization and newly created WebCacheV01.dat database.

I hope it will help someone debugging slow user's logons ...