Thursday 27 June 2013

Windows 8.1


The Start button is back and Microsoft has even included 3D printing support. Well, is it good enough? We find out...

Microsoft rolls out the next version of windows, 8.1, at its annual Build developers conference today. It's a big deal. Windows 8 was a crazy ambitious step, what follows is just as important. This is what Microsoft's taken from your months of feedback (or just, yelling).

Almost everything coming in 8.1 seems like a genuine improvement.

Check the blog for more info

Wednesday 26 June 2013

BLACKBERRY COLLABORATION SERVICE have been automatically restarted more than 5 times in a 24hr period

Until you fix the issue, change the service startup type as manual for Blackberry Collaboration service in order to avoid multiple restarts.

If you see below error from the application event log:

- <2013-06-24 00:56:30.430 CEST>:[152]:<BBIM_ServerName_BBIM_2>:<ERROR>:<LAYER = BBIM, [OCSC] Error: No certificates were found matching the required criteria>

- <2013-06-24 00:56:30.446 CEST>:[153]:<BBIM_ServerName_BBIM_2>:<ERROR>:<LAYER = BBIM, [OCSC] BlackBerry OCSConnector will terminate...>

The error clearly tells us, there is an issue with the certificate.

1. If any language rather than English is installed on the blackberry server. (Ensure the default language of the operating system is English.)
2. The certificate could have expired. (Request a new certificate from the CA)
3. Verify if the TLS certificate was requested properly. (If there is any entry missed while requesting the certificate, you need to request for new certificate from the CA to meet the required criteria)

Follow the KB24960 for requesting a new certificate

To request and install a certificate, perform the following steps on the server hosting the BlackBerry Collaboration Service:

Log in to the BlackBerry Collaboration Server as an administrator with permission to Enroll for a Web Server Certificate.
Click Start > Run, and type mmc.exe.
Open the File menu and select Add/Remove snap-in.
In the Add or Remove Snap-ins window, select Certificates, and click Add.
Choose Computer Account, and click Next.
Choose Local Computer, and then Finish.
Click OK on the Add or Remove Snap-ins window.
Expand Certificates.
Expand Trusted Root Certification Authorities and click Certificates. Make sure the root certificate is present for the Enterprise Certificate Authority in the domain.
Right-click Personal and select All Tasks > Request New Certificate.
Click Next.
If prompted to select a Certificate Enrollment Policy, select one under the category of Configured by your administrator. Click Next.
Select Web Server (If Web server is unavailable see the Additional Information section), and click the link for More information is required to enroll for this certificate. Click here to configure settings.
Click the Subject tab.

For Microsoft Lync Server 2010/2013:

Under the Subject Name section, change the Type to Common Name, and change the Value of the Fully Qualified Domain Name of the Microsoft Lync Server Pool, and then click Add.
Under the Alternative Name Section, change the Type to DNS, and change the Value to the Fully Qualified Domain Name of the Microsoft Lync Server Pool, and then click Add.
Again, under the Alternative Name Section, leave the Type specified as DNS, and change the Value to the Fully Qualified Domain Name of the server hosting the BlackBerry Collaboration Service.
Click Add.
Click the General tab.
Type OCSConnector for the Friendly Name, then click Apply, and OK.
On the Certificate Enrollment window, click Enroll.
Verify that the STATUS is Succeeded, and click Finish.

Check with your CA, they will receive the request. Once they approve the certificate, they will export the certificate and share the certificate with you.

Import the certificate which you have received from your CA.

Once the import is successful, you can start the service if it is stopped and change the service startup type to automatic.

From application event logs, you will see below event generated.

<2013-06-26 15:02:30.431 CEST>:[7]:<BBIM_ServerName_BBIM_2>:<EVENT>:<LAYER = SCM, BBIM server connects to the database>

Congratulations!!! you have successfully learned to fix the issue.

Tuesday 25 June 2013

Static Agents Vs Dynamic Agents in Blackberry Enterprise Server

Static Agents:

You can create separate Mailbox Agents for those special, important VIP users on your Blackberry Server so even if a Mailbox Agent worker thread gets blocked and a Mailbox agent is unresponsive they can still get mail delivered. Note that a new mailbox agent is like a new MAPI connection so you don’t want to create a lot of them because you BES server will become unresponsive.

The steps to assign a static mailbox agent on BES 5.0 are:

Log into the BlackBerry Administration Service web console.
Expand User under the BlackBerry Solution Management.
Click Manage Users.
Search for the desired BlackBerry smartphone user and click on their display name.
Click on Component information in the user view.
Click on Edit user.
Set Turn on static mailbox agent to Yes.
Enter a number between 200 and 399 in the Mailbox agent ID field.
Click Save all.

This procedure might be useful when BlackBerry smartphone user accounts are on a remote Microsoft® Exchange Server that has network latency issues. Assigning these BlackBerry smartphone users to a static agent can reduce the impact of network latency on BlackBerry smartphone user accounts on local Microsoft Exchange servers.

This is a temporary solution to consider while the network latency issues are addressed.

Note: If assigning multiple static agents, each one will initiate a new BlackBerryAgent.exe process and a new CalHelper.exe process on the BlackBerry Enterprise Server. These processes will use hardware resources and may cause performance issues on the BlackBerry Enterprise Server.

Dynamic Agents:

Each BES will start up by default 5 dynamic mailbox agents with SQL, each mailbox agent has a maximum of 100 MAPI threads and a maximum of 5 threads per pool. So about 500 users per agent.

Refer the blog for more info


Monday 24 June 2013

Meeting Request getting red X

Recently i have encountered an issue where one of our blackberry server users are unable to create meeting requests and calendar appointments are not synchronizing on BB device.

As our BES server version is 5.0 SP4 it supports CDO or EWS. As EWS is not working, decided to turn off EWS to use CDO for the calendaring functionality on the blackberry server. 

To disable EWS on blackberry server:

Open command prompt as administrator
Browse to the tools where Traittool is present (It will be present under bundle38)
Run the below command to disable EWS (Refer KB20157)

Traittool -server <Server Name> -Trait EWSEnable -set false

After disabling EWS, using CDO calendar functionality started working. Meeting requests are getting created without red X.

Its the time to check why EWS is not working and in order to check i have enabled static agent and assigned the static agent number as 213 for the test blackberry account.

Note: You can assign the static agent from the range of 200 to 399 (Refer KB12766)

Again enabled the EWS using below command

Traittool -server <Server Name> -Trait EWSEnable -set true

Now CALH logs will generate and while i checked the CALH logs for the agent 213, i found 
[40000] (06/21 02:20:11.560):{0x2DC8} <emailaddress of test blackberry account> Service::GetCalSyncFolderId exception caught: Unable to connect to the remote server

traittool -server <Server Name> -list > c:\EWSinfo

When i have checked the log, i have found the cause for the issue, where two entries related to EWS is missing. (EWSSCPURL & EWSCASURL)

traittool -server <server_name> -trait EWSSCPURL -set <web_address>


traittool -server <server_name> -trait EWSCASURL -set <web_address>

After i have added EWSCASURL,EWSSCPURL & restarted BES Controller service on the server.

I have tested by creating a meeting request and now i can see meeting request are processing as expected.

Thursday 20 June 2013

How email flows in Exchange 2010

In Exchange 2010, all messages are always routed through the Hub Transport Server.

Mail Submission Service – when a message is created and the Send button is clicked, the new message is placed in the mailbox outbox. There’s a service running on the Mailbox Server role called the “Exchange Mail Submission Service” which notifies the Hub Transport Server that a new message is awaiting for processing. The Mailbox Server has an internal list of Hub Transport Servers in the same Active Directory site (the submission server list) which is updated every 10 minutes. This is done by the server discovery process. A round robin mechanism is responsible for load balancing the SMTP traffic across these Hub Transport Servers

Store Drivers – the Hub Transport Server’s Store Driver retrieves the message from the Outbox and puts it in the Submission Queue on the Hub Transport Server. The Store Driver uses RPC to retrieve the message from the Mailbox Server. There’s no traffic on port 25 (i.e. SMTP) between the Hub Transport Server and the Mailbox Server.

Submission Queue – this is a queue, located on the Hub Transport Server where all messages are stored that need to be processed. Not only the Store drivers can store messages in the submission queue, but this can also be done through a receive connector or the pickup directory.

Categorizer – the categorizer retrieves messages from the submission queue and determines where the message needs to be sent to. This can be an internal Active Directory recipient or an external recipient. The categorizer also expands distribution groups and identifies alternative recipients or forwarding addresses.

Pickup Directory – this is a directory that is checked once every 5 seconds for new messages. When a message is in the correct EML format it is picked up from this directory and when the process is completed the file is deleted from the pickup directory.

Sunday 16 June 2013

Transport Dumpster and Shadow Redundancy, why both?

Transport dumpster is a feature built into Exchange Server 2010 HUB transport role and designed to minimize data loss during mail delivery to a DAG in a lossy failover scenario. The transport dumpster is stored inside the mail.que file. It's only available for message delivery in a cluster continuous replication (CCR) environment and doesn't address potential message loss when messages are in transit between Hub Transport and Edge Transport servers.

With shadow redundancy, the deletion of a message from the transport databases is delayed until the transport server verifies that all of the next hops for that message have completed delivery. If any of the next hops fail before reporting back successful delivery, the message is resubmitted for delivery to that next hop.

Understanding Shadow Redundancy
http://technet.microsoft.com/en-us/library/dd351027.aspx

Shadow Redundancy Mail Flow Scenarios
http://technet.microsoft.com/en-us/library/dd351091.aspx

For Dumpster: The recommendation is that this be set to 1.5 times the maximum message size limit within your environment. The default value for this setting is 18 MB.
By default, shadow messages are discarded automatically after two days.

Configure Shadow Redundancy
http://technet.microsoft.com/en-us/library/dd351046.aspx

Thursday 6 June 2013

Exchange 2013 Sessions From TechEd NA 2013

How to extract the blackberry user details

Login to the SQL Server wherein the Blackberry Configuration database (BESMgmt) of Blackberry Enterprise Server resides.
 
Login to SQL Server Management Studio.
 
Right Click on ‘BESMgmt’ database and select ‘New Query’
  
Copy the below query in the SQL Management Studio.
 
================================
select Displayname, MailboxSMTPAddr, CreationTime, ActivationTime from userconfig
================================
 
Execute the query (Press F5 or click on execute) to find out the Blackberry User details for all the Blackberry Users.
 
Copy the results of SQL query and paste it in Excel document.

Wednesday 5 June 2013

Possible Bug with Exchange 2010 SP3 RU1

I was going through Technet forum and found some administrators are facing issues post installation of RU1. 

Even though there is a 30% improvement in fixing the issues like soft delete, after implementing SP3 RU1 few admins faced the mail delivery issues with the sent mails.

All receive mails and OWA was working fine but the sent emails are going to Poison Queue after the update.

On server there will be several errors:

---> Error 10003 on MSExchangeTransport:The transport process failed during message processing with the following call stack: System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Exchange.Data.Transport.Email.PureTnefMessage.Microsoft.Exchange.Data.Transport.Email.IBody.GetContentWriteStream(Charset charset)
   at ............
--> Error 4999 on MSExchangeCommon: Watson report about to be sent for process id: 5724, with parameters: E12, c-RTL-AMD64, 14.03.0146.000, edgetransport, unknown, M.E.D.T.E.P.M.E.D.T.E.IBody.GetContentWriteStream, System.NullReferenceException, a79c, unknown.
ErrorReportingEnabled: False

If this is really a bug, MS will release interim update to address the issue. 
Disabling the Transport Rule is a work around not a solution, until Microsoft fix the problem. 

Windows Server 2012 R2

According to the Microsoft Corporate vice president Brad Anderson, "Windows Server 2012 R2 will be available for preview in June and will be officially released before the end of the year [2013].

Windows Server 2012 R2 Storage Improvements:


  • Automated Storage tiering: Storage in windows server 2012 can be configured to allocate workloads to the most appropriate storage types. For example, you can configure SSD drives to be prioritized for applications and workloads were speed and latency are vitally important, and to rely on slower types of storage for less important workloads.
  • "Generation 2" virtual machines: Windows Server 2012 R2 Hyper-V introduces what Microsoft is calling "Generation 2" virtual machines. Gen 2 VMs only support the 64-bit versions of Windows 8 and Windows Server 2012 R2 as guest OSes. Gen 2 VMs remove all of the legacy, BIOS-based functionality of traditional VMs. These VMs are UEFI-based, have no emulated devices, can boot off virtual iSCSI and network adapters, and support secure boot. The benefits to using Gen 2 VMs could be numerous, including the potential of vastly reduced VM sizes by eliminating support for legacy, BIOS-based overhead. Traditional "generation 1" virtual machines will still be enabled by default.
  • Hyper-V Recovery Manager: According to Woolsey, Hyper-V Replica has proven to be one of the most popular features of Windows Server 2012, so Windows Server 2012 R2 introduces the Hyper-V Recovery Manager, a new centralized management console that allows you to manage site replication.

Tuesday 4 June 2013

Checking which role can run a specific cmdlets


Below command is to find which role has the permissions to run the cmdlet "Get-ActiveSyncDevice" & "Remove-ActiveSyncDevice"

[PS] C:\Windows\system32>Get-ManagementRoleEntry "*\get-activesyncdevice"

Name                           Role                      Parameters
----                           ----                      ----------
Get-ActiveSyncDevice           MyBaseOptions             {ErrorAction, ErrorVariable, Identity, Mailbox, OutBuffer, OutVariable, SortBy, WarningA
Get-ActiveSyncDevice           View-Only Recipients      {Debug, DomainController, ErrorAction, ErrorVariable, Filter, Identity, Mailbox, Organiz
Get-ActiveSyncDevice           User Options              {Debug, DomainController, ErrorAction, ErrorVariable, Filter, Identity, Mailbox, Organiz
Get-ActiveSyncDevice           Mail Recipients           {Debug, DomainController, ErrorAction, ErrorVariable, Filter, Identity, Mailbox, Organiz


[PS] C:\Windows\system32>Get-ManagementRoleEntry "*\remove-activesyncdevice"

Name                           Role                      Parameters
----                           ----                      ----------
Remove-ActiveSyncDevice        MyBaseOptions             {ErrorAction, ErrorVariable, Identity, OutBuffer, OutVariable, WarningAction, WarningVar
Remove-ActiveSyncDevice        User Options              {Confirm, Debug, DomainController, ErrorAction, ErrorVariable, Identity, OutBuffer, OutV
Remove-ActiveSyncDevice        Mail Recipients           {Confirm, Debug, DomainController, ErrorAction, ErrorVariable, Identity, OutBuffer, OutV

Purging Old Quarantine Devices from Exchange Server for a Particular OU

In order to get the list of users who are in Quarantine State for more than a month for a particular OU

Get-ActiveSyncDevice | Where {$_.UserDisplayName -match "Domain.com/OU" -and $_.DeviceAccessState -eq "Quarantined" -and $_.FirstSyncTime -lt (Get-Date).AddMonths(-1)} | ft UserDisplayName, DeviceModel, FirstSyncTime, DeviceAccessState, DeviceAccessStateReason -Auto

To Purge the list of users after running the above command, you need to pipe Remove-ActiveSyncDevice

Get-ActiveSyncDevice | Where {$_.UserDisplayName -match "Domain.com/OU" -and $_.DeviceAccessState -eq "Quarantined" -and $_.FirstSyncTime -lt (Get-Date).AddMonths(-1)} | Remove-ActiveSyncDevice -Confirm:$false