What is DPM (Data Protection Manager) in Microsoft Exchange Server?

In this article, I am going to describe about what is DPM in Exchange server 2016, 2013, & 2010. The full form of DPM is Data Protection Manager, as the name suggest that it is related to the data protection of Exchange server database. But it not just protecting the data by taking regular backup. It also recover the data in case of any disaster, you just need to make sure that all the configurations are properly configured for this.

Prerequisites: DPM

There are following criteria which should be fulfilled before deployment and configuration of DPM for Exchange database protection.

  • First of all make sure the ESEUTIL.EXE as well as ESE.DLL are installed on Exchange server as well as on DPM server.
  • ESEUTIL and ESE should be of same version, if 64 bit is installed on Exchange server, then it is necessary that 64 bit version of ESEUTIL and ESE should be installed on DPM server.
  • In case of any updation in ESEUTIL and ESE on exchange, make sure that the update should be installed on both server. You can find the ESEUTIL and ESE file at below mentioned location in Exchange:
    For Exchange 2016:

    C:\Program Files\Microsoft\Exchange Server\V16\Bin

    For Exchange 2013:

    C:\Program Files\Microsoft\Exchange Server\V15\Bin

    For Exchange 2010:

    C:\Program Files\Microsoft\Exchange Server\V14\Bin

  • Run below mentioned FSUTIL command to create link between ESEUTIL or Exchange and DPM Server.
    fsutil hardlink create "c:\program files\microsoft\dpm\bin\eseutil.exe" "c:\program files\microsoft\Exchange\bin\eseutil.exe"
  • The latest version of Visual C++ Redistributable should be installed.
  • For protection of DAG nodes, it is mandatory that DPM should be installed at node and One DPM server can protect only one Node at a time.
  • DPM protects active as well as passive database of Exchange server.
  • Change minimum frequency for synchronization more than 15 minutes.

Advantages of Deploying DPM with Exchange Server

There are following advantages which you could get after implementation of DPM with Exchange Server:

  • There is no additional database server is required in DAG after deployment of DPM with Exchange.
  • In case of any disaster, with the help of DPM the database could be restored easily.
  • DPM server keeps backup of Exchange database for long time in comparison with 14 days native backup retention time.
  • DPM provides complete backup of all workloads like: Hypervisor, SQL Server, File server, Exchange Server etc.

Monitoring Exchange Server with DPM

After installation and configuration of Data Protection Manager, it is required to set up monitoring notifications and alerts for getting information of any suspicious behavior of Exchange server into your mailbox. There are some process to setup the notification in DPM, which I am going to mention below.

  1. First of all, go through the DPM Administrator Console, and then click on Monitoring, then Actions and then Options.
  2. Now, click on SMTP server and then enter the Server Name, Port Number, and the Email Address in which you want to receive notifications and alerts.
  3. Now, in Authenticated SMTP Server enter username and password of previously entered email address for getting notification.
  4. Now, click on Send Test-Email and enter the email address in which you want to get the notification and then click on OK button to get a test notification message.
  5. For more detailed, click on Options and then Notifications and select type of notifications you want to receive, and in Recipient enter all those email address, whom you want to send the notification messages.
  6. Now again for testing hit Send Test-Email link.

That’s it about What is Data protection manager in this article.

Exception Case

As we have discussed that deployment of DPM would be very useful if your server is hosted in DAG and you don’t want to let the server down for a little span of time. But, if you don’t have a very large scale of business and you can keep you organization continue in case of little span of downtime in a month. Then you need not to put a lot of money after DPM configuration and management.

In case of any disaster, if server goes down and you find that your Exchange database is corrupted then you could use any third party tool which can help you to restore the database.

Conclusion: What is DPM?

The described information in this article is completely related to “What is DPM or Data Protection Manager” and “How it is good to configure with Exchange”. In above sections, we have discussed about the pre-requisites of DPM installation, advantages of DPM, and way to configure DPM for monitoring activities going on Exchange Server. In the last section we have also mentioned an exception situation, in which case, deployment of DPM would be the best.

How to Archive Exchange 2013 Mailbox to PST?

In this article, we are going to discuss ‘How to Archive Exchange 2013 Mailbox to PST’? Generally, Exchange Server 2013 user asks these type of queries when they think to take backup of all Exchange mailboxes or any single mailbox. This is really a very good practice for an Exchange Server user. In below section, we are going to discuss the two different way for archiving mailbox, in which one would relate to single user mailbox archiving and the other one would relate to all user mailbox archiving.

How to Archive Exchange 2013 Mailbox to PST Continue reading How to Archive Exchange 2013 Mailbox to PST?

Move Exchange 2010 Mailbox Database to Exchange 2013

This article is all about how to move Exchange 2010 mailbox database to exchange 2013. As we know, Microsoft Exchange Server is a mail server. It runs entirely on Windows Server operating systems. It was initially known as Microsoft’s internal mail server. It is licensed both in the forms of on-premises software and software as a service. It has limited features rather than Exchange 2013. Users might face an issue while sending or receiving the internal as well as external emails. To resolve this issue multiple users export mailbox from exchange 2010 to 2013. It contains multiple utilities such as executive audit logs, metadata searches, and unified message including menus, dial plans, and custom greetings. We will be discussing in detail about how to move exchange 2010 mailbox database to exchange 2013 and the solution to recover Exchange Mailbox. Continue reading Move Exchange 2010 Mailbox Database to Exchange 2013

Exchange Database is in Dirty Shutdown State Error – Learn to Fix

In this article, we are going to discuss exchange database is in dirty shutdown state. We will also discuss the solution to recover exchange from dirty shutdown which would be applicable for Exchange 2016, 2013, 2010 & 2007. As you might know that Exchange Server database is completely based on JET engine where log files are responsible for maintaining the track of input as well as output operations in the database file. It utilizes the concept of database cache mailbox to decrease the count of input and output operation. When the operation is loaded the cache memory then, it is not committed the information storage, the JET engine marks it as DIRTY. Until all the pending transactions are committed to the database then, it is not measured as updated. Moreover, until the time all the dirty pages are there in the database that is considered as inconsistent. Until the transaction is completed, if the machine shuts down accidentally then, database stay attached to the log file because of which “Exchange Database is in Dirty Shutdown State” error is received on screen. Continue reading Exchange Database is in Dirty Shutdown State Error – Learn to Fix

Learn about Top 5 Exchange OST Recovery Tools of 2016

With the development of various tools for recovering Exchange OST data, choosing a right one maybe quite confusing for users. Nevertheless, their motive is to be able to restore data from damaged OST files without affecting its integrity. Now-a-days, OST recovery Tools are in high demand among users as the Exchange OST file is very prone to corruption, mainly due to the synchronization issues. In such situations, one reliable way to restore back our data like emails, calendar, contacts, etc. from such OST files is to use automated recovery software. This article will guide users in choosing the right tool by discussing the Top 5 Exchange OST Recovery Tools of 2016. Continue reading Learn about Top 5 Exchange OST Recovery Tools of 2016

How To Recover Corrupt Exchange 2016 Database?

In this write up you will learn about how we can recover corrupt Exchange 2016 database files. You will find this process very simple after going through this article. As you might know that Exchange Server users face situation of file corruption many times. After that they all look for the manual procedures and software for recovering the Exchange database. This common problem is called as user mailbox damage and it comes by logical errors in the Exchange Server. There are two types of database (EDB) files in Exchange Server. First, is EDB that contains private data and second, is EDB that contains public folders. EDB is an Exchange Server data repository that contains all the data in a structured manner. Continue reading How To Recover Corrupt Exchange 2016 Database?

Heartbleed Vulnerability and Exchange Server

A member of a group on LinkedIn posted about a vulnerability in OpenSSL. Some more details are about the bug are documented here very well Critical crypto bug in OpenSSL opens two-thirds of the Web to eavesdropping

When you read OpenSSL, most of you might think it is not something applicable to my exchange environment since Microsoft Exchange doesn’t use OpenSSL anywhere. That may be not be 100% true. Although neither exchange nor windows natively use OpenSSL, this vulnerability still matters to you and needs you to look at if you are running any sort of hardware load balancer, reverse proxy appliance or a virtual appliance to publish exchange over internet or within corporate network.

A lot of load balancing appliances run on Linux based operating systems and do use OpenSSL stack extensively. You should do a double check on all the appliances that use Linux or Unix based operating systems on them.

How to detect Heartbleed

This vulnerability only applies to OpenSSL versions 1.0.1-1.0.1f. Other SSL libraries, such as PolarSSL, are not vulnerable. OpenVPN-NL, which is depending on PolarSSL, is not affected.

To detect whether you are affected by heartbleed you can use either of below tools

  • http://filippo.io/Heartbleed/ : a web based tool to test and identify the vulnerability. Just enter the name of the website you want to test, in exchange server’s case; it would be OWA/ EAS/EWS /OAB, etc URLs published on internet.
  • http://s3.jspenguin.org/ssltest.py : a python script to test for the vulnerability from the command line. If you want to scan multiple sites you can use a modified version with easily parseable output.
  • If you use Chrome you can install the Chromebleed checker that alerts you when visiting a vulnerable site.
  • To see whether your load balancing or reverse proxy appliance uses a vulnerable version of OpenSSL login to the appliance with and run openssl version if the version


OpenSSL has provided an updated version (1.0.1g) of OpenSSL at https://www.openssl.org/source/. It is recommended to consult your appliance manufacturer to find out the update procedure and implications of update before simply going ahead and applying the fix.

File level Anti-Virus Exclusions for Exchange Server 2013

Many of you might have called Microsoft PSS in past and would have heard them asking you to set the AV exclusions on the exchange server. Several customers get alarmed with an idea of excluding folders and files from AV scanning. Although your company’s security officer may not like the idea, it is essential that you exclude some files and folders from AV scanning when running an exchange server installation on Windows to avoid lot of unforeseen performance and content conversion related issues.

You may ask, why  is it important to set exclusions? As a general practice several organizations deploy file level scanning on the server systems where exchange is installed. To perform a scan of a file an AV software definitely needs to put an handle on the target file. Imagine a case when an AV software has locked a huge database file that is also required to be used by information store. In this case, the amount of time taken by AV to perform a full scan of the file is certainly higher than what an information store thread can wait for. In another case processes are also sometimes locked by file level scanners. Executable files being one of the most common medium for viruses to spread across, AV pays a special attention to the .exe file types. If an executable that is supposed to work as an image for a service is locked by AV, the relevant service may also fail to start causing downtime of that service component on the server. It becomes extremely important to configure exclusion in the file level antivirus software to avoid any known or unknown issues in future.

Although exclusions are good for the health and stability of exchange servers, I have seem some people excluding entire exchange installation directory. Which is not a good practice. When you configure exclusions, you should configure them correctly.

Alright, so what folders and files should I exclude from file level scanning? Great! Seems like you were able to make your security officer happy and get an approval for setting up exclusions on server systems. I personally had to struggle to get it approved by CISOs so far :-). If you were one of those lucky guys who got an approval immediately then below is the list of files and folders to be excluded.

On a Mailbox Role

File Extensions to be excluded:


Folder Exclusions

Type Default Location
Mailbox Database Folder %ExchangeInstallPath%\Mailbox
Log Files Folder %ExchangeInstallPath%\Mailbox
Checkpoint Files Folder %ExchangeInstallPath%\Mailbox
OAB Folder %ExchangeInstallPath%\ClientAccess\OAB
Group Metrics Folder Under %ExchangeInstallPath%\GroupMetrics
IIS System Files %SystemRoot%\System32\Inetsrv
Mailbox Database Temp Folder %ExchangeInstallPath%Mailbox\MDBTEMP
DAG FSW Folder %SystemDrive%:\DAGFileShareWitnesses\<DAGFQDN> (This folder is not hosted on the DAG members)
Cluster Quorum Database %Windir%\Cluster
Message Tracking Logs %ExchangeInstallPath%\TransportRoles\Logs
Tracing Logs %ExchangeInstallPath%\TransportRoles\Logs
Pickup and Directory %ExchangeInstallPath%\TransportRoles
Queue databases and Logs %ExchangeInstallPath%\TransportRoles\Data\Queue
Sender Reputation Files %ExchangeInstallPath%\TransportRoles\Data\SenderReputation
Content Conversion Temp Files %SystemRoot%\TEMP
OLE Content conversion folder %ExchangeInstallPath\%Working\OleConverter
Content Scanning folder %ExchangeInstallPath%\FIP-FS
Connectivity Logs %ExchangeInstallPath%\TransportRoles\Logs\Mailbox
Grammer Files %ExchangeInstallPath%\UnifiedMessaging\grammars
Voice Promots folder %ExchangeInstallPath%\UnifiedMessaging\Prompts
Voicemail files location %ExchangeInstallPath%\UnifiedMessaging\voicemail
Temp files for UM %ExchangeInstallPath%\UnifiedMessaging\temp

On a CAS Server

Folders Exclusion

Type Default Location
IIS File System %SystemRoot%\System32\Inetsrv
IIS Logs Inetpub\logs\logfiles\w3svc
IMAP4 Protocol Logs %ExchangeInstallPath%\Logging\POP3
POP3 Protocol Logs %ExchangeInstallPath%\Logging\POP4
Front End Transport Logs %ExchangeInstallPath%\TransportRoles\Logs\FrontEnd

In addition to above exclusions you should also exclude below process from scanning depending upon what server role you are excluding them on. Although it is not a mandate to do exclude the processes from scanning, some file level antivirus programs support process scanning as well. If your AV program is one them, it can cause adverse effects on exchange services.

Cdb.exe Microsoft.Exchange.Pop3service.exe MSExchangeRepl.exe
Cidaemon.exe Microsoft.Exchange.ProtectedServiceHost.exe MSExchangeSubmission.exe
Clussvc.exe Microsoft.Exchange.RPCClientAccess.Service.exe MSExchangeTransport.exe
Dsamain.exe Microsoft.Exchange.Search.Service.exe MSExchangeTransportLogSearch.exe
EdgeCredentialSvc.exe Microsoft.Exchange.Servicehost.exe MSExchangeThrottling.exe
EdgeTransport.exe Microsoft.Exchange.Store.Service.exe Msftefd.exe
ExFBA.exe Microsoft.Exchange.Store.Worker.exe Msftesql.exe
hostcontrollerservice.exe Microsoft.Exchange.TransportSyncManagerSvc.exe OleConverter.exe
Inetinfo.exe Microsoft.Exchange.UM.CallRouter.exe Powershell.exe
Microsoft.Exchange.AntispamUpdateSvc.exe MSExchangeDagMgmt.exe ScanEngineTest.exe
Microsoft.Exchange.ContentFilter.Wrapper.exe MSExchangeDelivery.exe ScanningProcess.exe
Microsoft.Exchange.Diagnostics.Service.exe MSExchangeFrontendTransport.exe TranscodingService.exe
Microsoft.Exchange.Directory.TopologyService.exe MSExchangeHMHost.exe UmService.exe
Microsoft.Exchange.EdgeSyncSvc.exe MSExchangeHMWorker.exe UmWorkerProcess.exe
Microsoft.Exchange.Imap4.exe MSExchangeLESearchWorker.exe UpdateService.exe
Microsoft.Exchange.Imap4service.exe MSExchangeMailboxAssistants.exe W3wp.exe
Microsoft.Exchange.Monitoring.exe MSExchangeMailboxReplication.exe  
Microsoft.Exchange.Pop3.exe MSExchangeMigrationWorkflow.exe  

Most of these processes can be found under the Bin directory of exchange server installation folder and some of them reside inside the sub folders. If you are not sure of what path is set for the folders to be excluded in the folder exclusion table above, a quick run Get-TransportService, Get-MailboxDatabase,  Get-UMService can give you the paths you are looking for.

Register Filter Pack IFilters with Exchange 2013

IFilter provides an interface to the Microsoft search indexing services to allow indexing of documents, file metadata, emails, email attachments, and lot other. Unless an appropriate IFilter exists search service / engine cannot index the files relevant to a missing IFilter. Exchange uses IFilters for the similar reasons and also to let some transport rules work correctly. Some transport rules can perform phrase or word based jobs and to perform it better, they should be able to read through content of an attachment. IFilters

Exchange 2013 transport rules supports multiple document formats by default. OneNote and Office Publisher are not supported by the transport rules though. That means an email going through an exchange 2013 server which contains a Onenote notebook attached to it may bounce back due to AttachmentUnsupported condition. So, if you want to support onenote and publisher file formats on exchange 2013 transport rules you should register the additional IFilters manually on an Exchange 2013 Mailbox Server.

To register IFilters with Exchange 2013 you can follow below steps:

Download Microsoft Office 2010 Filter Pack and Service Pack 1 for Microsoft Office Filter Pack 2010 (KB2460041) 64-bit Edition and install them one after another.

1. Now logon to your Exchange 2013 Mailbox Server Role, Open registry editor and locate the key -  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\HubTransportRole\CLSID

If a key named CLSID does not exist create one manually as shown in below figures. Below steps will demonstrate how to add the CLSID and filter for OneNote files.


2. Right click at the location HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\HubTransportRole\CLSID and create another new key named {B8D12492-CE0F-40AD-83EA-099A03D493F1} as show in below figure


3. Double click on the string value (Default) and set the path to where Office Filter Pack is installed. Default location of the filter pack is C:\Program Files\Common Files\Microsoft Shared\Filters


4. Right click at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\HubTransportRole\CLSID\{B8D12492-CE0F-40AD-83EA-099A03D493F1}  and create a new String Value and rename it to ThreadingModel and set its value to Both


5. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\HubTransportRole\filters. Again, if filters key does not exist create it manually.

6. Under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\HubTransportRole\filters create another key .one (please note a preceding dot)

7. Change the value of (Default) string value to {A7FD8AC9-7ABF-46FC-B70B-6A5E5EC9859A}


In last 7 steps we registered the IFilter for OneNote file types.

8. To add an IFilter for Publisher files add a key named .pub under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\HubTransportRole\filters and set the (Default) value to {A7FD8AC9-7ABF-46FC-B70B-6A5E5EC9859A}


Close the registry editor and restart following services on Exchange mailbox server.

  • Restart Microsoft Exchange Transport Service
  • Restart Microsoft Filtering Management Service

To register a non Microsoft IFilter you should know the class ID of the product, it can be easily located under HKEY_Classes_Root\CLSID by searching for the file extension you want o register or referring the IFilter documentation.

Description of files inside C:\Program Files\Common Files\Microsoft Shared\Filters

File Name Description
msgfilt.dll Microsoft Message IFilter
NLHTML.dll Microsoft HTML IFilter
odfflit.dll Microsoft Filter for Open Document Format
OFFFILT.dll Microsoft Office IFilter
offfiltx.dll Microsoft Office Open XML Format IFilter
ONIFILTER.dll Microsoft OneNote IFilter
PUBFLIT.dll Microsoft Publisher IFilter
VISFIT.dll Microsoft Office Visio IFilter

Have a great time until next post. Keep reading and keep exploring!  Smile

Inside the Exchange 2013 Single Namespace – Part 1

Database Availability Group (DAG) and Client Access Array (CAS Array) brought a huge value to Exchange 2010 as a product. Both technologies compliment each other to provide high availability and seamless client experience. Switch over or failover of mailbox databases or an entire server in previous versions to Exchange 2010 were always a nightmare for the administrators to maintain the client experience. Exchange 2010 does a magnificent job to reconnecting a disconnected client back in 30-45 seconds. This is possible only because of the CAS array which works as an entry point to outlook and other native exchange clients.

Although DAG and CAS array together were an extremely successful model,  they posed a complexity of operation in a multi datacenter environment. To manage a site switchover or failover; an administrator still needs to consider a lot of factors so that the clients do not experience downtime or disconnections. In an event where entire datacenter fails, an administrator must change several things in the configuration including DAG, mailbox database properties, CAS arrays, DNS, load balancing appliances etc. I have personally seen some disaster recovery drills performed at several customer places and the effort involved to get everything working could not be reduced lesser than 15 minutes. In all cases, external clients were the most affected ones. A disconnected executive user needing to send an urgent email containing some business details to partners can be even worse.

Most of all dissatisfying experiences are due to the way CAS arrays work with DAG.

I must admit how detailed study the Microsoft Exchange Team has done to overcome the challenges faced by customers (although the primary driving factor was to make office 365 a huge success 🙂 ). Exchange 2013 overcomes the site switchover or failover challenges by introducing something new called “Single Namespace”. I am not really going to detail everything about it since there are decent articles available around this topic, a good one of those exists here. Instead, I am going to write a little more about how does it work and what happens under the hood. So, let’s get started!

Windows DNS Client 

Exchange Single Global Namespace requires more than one CAS servers and indeed more than one IP addresses to be specified for a single name that will be used by the clients to connect. Just similar to DNS load balancing using a single host name mapped to multiple IP addresses. Outlook clients will then learn these IP addresses with the help of DNS client. In order to retrieve these IP addresses DNS resolver is called and the received response is cached in the DNS resolver cache and the HTTP cache both. For example microsoft.com is the fqdn used for your exchange servers, when you query microsoft.com using nslookup, you find something like below"


DNS Client and HTTP Caching

While the addresses returned by querying a DNS server are cached by the DNS client, they are also cached by the HTTP client. WinInet can very well use the DNS client cache to query this cached response however, it requires a RPC call to be made to DNS cache which is still slower than querying its own cache. This way the cached addresses can be retrieved much faster and they can be used without sending a DNS query to the DNS server. Cache ignores any TTL specified by the DNS server and defaults it to 30 minutes. IE 10 and later hold up to 256 entries in the cache.

The HTTP Client

Windows clients run a built in HTTP client that is nothing but a set of DLL files sitting inside System32 folder. WinInet is an acronym used for Windows Internet and provides APIs for the application development. Internet Explorer uses this library to get you the internet resources like websites and ftp sites. WINHTTP is also provides client side APIs but its primarily used by services. HTTP is now the primary protocol of communication between clients and Exchange CAS servers, WinInet is the base for these communications. However applications which are affected by IE settings also honor and refer the WinInet for HTTP calls. Outlook is certainly one of them.

DNS Round and Robin

This is the most interesting topic for the exchange guys. This how outlook determines how to connect to the addresses returned by a DNS server. Let us take the example shown above.:

A host named microsoft.com returned two IP addresses let us call it a list of IP addresses:

The http client will attempt the connection to first address in this list, if the connection to the first IP fails, it is marked bad and next IP address is attempted. This process continues until either a successful response is received from the server, or until it reaches the end of list of IP addresses. Value of an option flag INTERNET_OPTION_CONNECT_RETRIES determines the behavior of connection attempts to each IP returned in the list of IP addresses.



Sets or retrieves an unsigned long integer value that contains the number of times WinINet attempts to resolve and connect to a host. It only attempts once per IP address. For example, if you attempt to connect to a multihome host that has ten IP addresses and INTERNET_OPTION_CONNECT_RETRIES is set to seven, WinINet only attempts to resolve and connect to the first seven IP addresses. Conversely, given the same set of ten IP addresses, if INTERNET_OPTION_CONNECT_RETRIES is set to 20, WinINet attempts each of the ten only once. If a host has only one IP address and the first connection attempt fails, there are no further attempts. If a connection attempt still fails after the specified number of attempts, the request is canceled. The default value for INTERNET_OPTION_CONNECT_RETRIES is five attempts. This option can be used on any HINTERNET handle, including a NULL handle. It is used by InternetQueryOption and InternetSetOption.

Each connection attempt could take up to 21 seconds if the DNS query returns too many number of IP addresses.  This will perhaps justify why exchange team claims to have 20 seconds delay in the client reconnection. The reconnect delay may also occur due to sluggish internet connection. When you have a multi site deployment and want to use a single namespace across the sites, you can very well specify multiple IP addresses for namespace you are planning to use and the http client on the windows computers will take care of this for you

Firefox and other clients

Exchange 2013 supports multiple browsers for outlook web app. Firefox, Google Chrome, Safari are very widely used and supported web clients for OWA. NeitherI could find a lot of literature around these products nor have much interest to run 100s of tools to understand their behavior; but if you are interested to learn how firefox deals with all the stuff that this article explained so far, a good read is available at How does firefox cache DNS requests/replies?

Although Single Namespace support by Exchange 2013 leverages most of the client side features to provide a seamless experience for the outlook clients, there is a lot that servers have to do in backend when a site switchover or failover happens.

I will discuss more about what happens inside your datacenter during the site *over in the next part of this post.

I'm a Geek!

%d bloggers like this: