Hi Readers,
We have recently faced a weird issue:
For a Particular user auto-discover was not working , we tried a lot of things but was not able to resolve it.
Reason is Exchange 2010 auto-mapping feature
When Administrator grants full access to the user to another mailbox than other mailbox gets auto mapped in outlook.
There are two things that gets updated in this process
msExchDelegateListBL: This will be updated for the user
msExchDelegateListLink: This will be updated on delegate
Auto-discover tries to discover user as well as the mailboxes that are auto mapped.
In our case , we found three mailboxes in users “auto mapping” for which auto discover was not working.
How to find it : ( We have a quest ad tools installed)
Get-QADUser UseriD -IncludedProperties msExchDelegateListBL | select @{Name=”msExchDelegateListBL”;Expression={$_.msExchDelegateListBL}} | export-csv c:\msexchangelistbl.csv
Now we have all the accounts that are in msExchDelegateListBL
Check if all these accounts exists( In our case they existed) — If some of them don’t exist than you are close in finding the cause.
If not than try for all those accounts if auto discover works.
It can be that you have to check both above cases.
Now on those accounts that have auto discover issues, from ADSIEDIT check msExchDelegateListLink attribute and remove the original user(that was having issues) from it.
This will fix the issue.
Tech Wizard
Vikas bhai. This is good article and we had this issue on large scale which we fixed by proposing a service improvement to customer and determined the users whose auto discover were failing then fixed using powershell scripts at one go for all users. In our environment we had 3000 users in total. i used this powershell to get the problematic users first and then removed the particular entry whose mailbox was not there but had AD account mapped there.
Import-Module ActiveDirectory
Get-ADUser -Properties msExchDelegateListBL
Get-ADUser -Properties msExchDelegateListBL -LDAPFilter “(msExchDelegateListBL=*)” | ForEach-Object { Write-Host $_.Name -ForegroundColor Green; ForEach ($m in $_.msExchDelegateListBL) { Get-Mailbox $m } }
Usually it happens if you have legacy exchange coexistence with exchange 2010 and you disable a exchange 2010 mailbox using legacy console for example a shared mailbox on which suppose 10 users have access on this box . some of the exchange properties will not be removed and this is the one of the property. so we need to use adsiedit to remove the samaccount names for all these 10 users listed in the msexchDelegateListBL attribute . else all these 10 users will face lot of issues like Out of office settings can not be displayed, Calendar free/busy fail, OCS out of sync and many more….
Here is a article which we used to fix all 3000+ users
http://blogs.technet.com/b/tips_from_the_inside/archive/2012/01/11/autodiscover-fails-for-one-or-more-users.aspx
Alternative is to get list of such problematic users in your environment
$user=”domain\adminaccountname”
$password=”******”
$securePass=ConvertTo-SecureString -string $Password -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential $User, $SecurePass
$file = import-csv C:\temp\freebusy.csv
$data= foreach ($Record in $file)
{
$users = $record.smtpaddress
Test-OutlookConnectivity -Identity $users -Protocol tcp -MailboxCredential(get-credential $credential) | where {$_.scenario -like “Autodiscover*”} | select result,username
}
$data | export-csv c:\temp\freebusyresult.csv
As always, our case was a bit different in this example ,Only single user reported but we are planning for checking all from back-end, may be we will go ahead & disable auto mapping feature as well..
just framed this to find all users in our environment that have that attribute & than we will go from there fir checking further
$coll=@()
get-content c:\users.txt | foreach-object {
write-host $_ -ForegroundColor Green
$coll+=Get-QADUser $_ -IncludedProperties msExchDelegateListBL | select Name, @{Name=”msExchDelegateListBL”;Expression={$_.msExchDelegateListBL}} }
will extract in csv after that..