I want to have Exchange in my lab since it is very popular software and so many customers use it. I have not installed Exchange for a very long time. I have done a lot more of the Lotus Domino type installs! So I am taking notes to make this easy in case I have to do it again. So that means a blog article! This will help you get Exchange running for a small environment. While this article will help you get Exchange working in a production environment it is not designed for that but you can find more info on that in this article.
BTW, if I was getting email going in my home lab, since I don’t need Exchange in my home lab I would instead install this. It is easy, simple and useful.
Lets get started!
- Windows 2012 R2 – full patched with a static IP and a member of the domain. My VM had 8 GB RAM, and 80 GB disk and 2x vCPU.
- Of course, like so many things, the right TimeZone and correct time / date info is important as well as healthy DNS.
- Command line changes (run as Admin) – you will need to execute the following PowerShell command:
Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-Clustering-CmdInterface, RSAT-ADDS
Note: I copied and pasted the above to my PowerShell line and clicked and it worked great. But, if you see any red, then likely you did not start PowerShell as an Admin.
- One of the multiple times I did the above on a newly deployed from template, I got a success but that I must restart. So I did and I continued with no issues.
- One of the multiple times I did the above it did not work. Every time I did the <ctrl+v> to paste the text I actually only got the <ctrl+v> on the screen. No idea what was going on. So I started the PowerShell ISE as admin and the paste worked there fine. I continued with no issues.
- Another PowerShell command to enter is: Add-WindowsFeature Desktop-Experience – I would not normally use this but I am told it is necessary to support the GUI install of the Unified Communications application.
- Additional Software – you will need to install…
- Your account should be a member of the Enterprise Admins AND Scheme Admins – they can be removed after this install.
Now confirm that there is no outstanding patches and restart the server. Even after the restart try for outstanding patches. In my case there was in fact Filter Pack and other updates so I updated and restarted a second time.
We should now have access to the expanded and extracted ISO or have the ISO attached. Important to note you should run things using Run as Administrator. Some people will turn off UAC but others may just down level it. If you leave it running, make sure you do the Run as Admin on the setup.
We continue the setup process. We see below the first few screens.
I like to let it connect and see if there are updates. In my case there were none.
Now we see the files copy. This will take a few minutes.
Now we see something about Initializing Setup.
Now we are at the Introduction and things start to get interesting.
First we get License,
I do use recommended settings as I like to share usage info. From my time at VMware I know how helpful that can be to product management delivering features that customers need.
Next we are prompted about roles. More simple then in the past, but for us we are in a small lab so it is simpler.
Next we confirm the path.
Now we need to specify a name for our Exchange Organization.
Now we are prompted for our Malware setting. I already have Trend installed for my anti-virus but the message actually says we can ‘pair’ which means to me that I can let Exchange do some and Trend can do some.
Now we see something about Readiness Checks. Prepare for disappointment. Twice now things stop on this.
Now the disappointment.
This screen has hit me several times (BTW I got past it by adding my account temporarily to the Scheme and Enterprise admin groups). Each time I solve the issues and I update the article. But then I found this.
We are good to continue.
So we get a few updates through the process of install which takes a bit.
There is a link to the Exchange 2013 post-Installation tasks on this page. In addition you can also launch the Exchange Admin Center too.
However, you should restart the VM (or computer) now. After restart I suggest you check for patches via Windows Update. I had two updates – one a security update and one an anti-spam update – waiting for me.
Then from your normal desktop you should connect to the Exchange Admin Center to make sure you can log in.
I logged in to make sure I could. I used the domain admin equivalent account I normally work with (both Enterprise and Scheme group membership used for install removed) and was using for the install.
This is not a great test – I mean no send and receive of email for example – but it at least confirms that the install worked.
While we did a Windows Update after we restarted after the install got a few things we are now going to do a proper update. Not long ago a Cumulative Update (CU8) was released. Very nice they are cumulative which means we need to install CU8 and none of the previous ones.
So lets start this by doing a Run as Admin on the Exchange2013-x64-cu8.exe file.
Note how it defaults to the downloads folder? Not what I really should have done as it made a mess but not a big deal. I could have browsed to a new folder instead.
Once extracted look for the setup.exe.
I like to do these sorts of admin level things with a Run as Admin.
Now we will see about if there is any updates. But there never is. Even when right after the install of Exchange there is Exchange updates on Windows Updates.
And finally the actual update.
Interesting to note here, and in fact earlier, that we can see what CU we are doing. That is good. Also note the warning, it is correct as I am updating after the install so not a truly configured server yet. Hope that doesn’t cause an issue for me.
So 18 steps again.
Finally we see the Setup Completed and we restart.
I restart and in fact check for updates after restart and yes there is. Anti – spam again. But after that I am ready to make sure that Exchange is still running.
From my admin desktop I log in again.
Admin Center –> https://bosesxch01.dglabs.com/ecp/
I can log in and see that I am the only recipient. So it is still running after the update. Now we are ready to do our basic configuration.
BTW, just in case the Exchange install logs are in C:\ExchangeSetupLogs.
The first we should do after we log in is switch to the Servers view and license our install.
So we change to the mail flow view, and we start with accepting the domain.
Once we use the accepted domains button you will see something like below.
There are several other tabs that can be seen here – email address policies – which can be used for things like having different internal and external domain names or having several domain names that can be used through email. The next one is receive connectors and it turns out we need to do nothing there – yet. By default Exchange 2013 will receive email. The third one is send connectors and we are going to work with that one.
So we have a number of steps to enable outbound SMTP messages.
- Start with using the + sign – as seen above.
- You will end up in a wizard.
- You need to name this outbound connector – so with my vivid imagination I came up with Outbound. Notice the options below for type – make sure to select Internet.
- On the next screen the default value of letting your server look up addresses for itself is good. If you have some sort of a anti – malware or security host you might sometimes select them here as a Smart Host to provide additional security on outgoing (and incoming too) email. Since we are getting this working in a home lab I have nothing like that!
- We now need to create new address space for this connector. So use the + sign to create one and name it *.
- Once this is saved you can continue to the next screen. It is to define the source server. Use the + sign again to select your server. Easy in our case as there is just one.
- You can now use the Finish button to finish adding the send connector.
BTW, in several places in this wizard where there was supposed to be a popup kind of window there was no popup in my Chrome browser but if I used IE there was. So it seems some sort of tweak for Chrome is necessary or when working in the Exchange Admin Center use IE.
We do not have much to do here. Although as I learn more there may be more added here.
Offline Address Book
This is important to do if there are going to be offline users, and while there may not be in my lab. This OAB is used by Outlook in offline mode, and it caches the global address list so it is available for he end user.
- Click on Servers in the left pane,
- Now select the Pencil so we can make some changes.
- Now select Client Settings.
- Now we can where the OAB could be.
- Use the browse button, click OK, and then select Save.
Enabling internal relay
This is important since in my case non – human application accounts will need to send me email. This is nothing new or strange but what is different is that I will not be inside so the message will need to be relayed to the outside which is disabled by default.
So start by being in the Exchange Admin Center.
- Select mail flow and receive connectors.
- You will need to create a new connector so start with the + sign.
- We need a Name, and make sure to select Frontend Transport and Custom.
- In the next screen – Network adapter bindings just leave it at the default.
- The next screen is Remote network settings and is an important screen.
- The configuration as it is configured above is an open relay. So anyone – external or internal could relay. So use the minus and delete it!
- Now use the + button – likely needing IE to see the popup. Now add your internal IP info – such as the whole internal subnet like I have, or just what you need.
- Now hit save, and Finish.
- Next we need to edit the record we just created. So use the pencil button.
- Next we enable anonymous users to drop off messages. Check out the screenshot below for the necessary settings.
- Once you hit save, you are done here.
Now we are ready for some simple testing.
We do not have an MX record defined for our domain so there won’t be external email coming into our server for test purposes. However, I suspect if there was an MX record the messages would be accepted with no further config. But not positive. In my work lab an MX record is likely an issue and as it is not necessary I will not pursue it.
Test 1 – Outbound by user
In this test you log into the OWA URL and send an outbound email to an Internet user. Did it work? In my case yes, and I tested to multiple destinations.
Test 2 – Internal – user to user, and back
In this test you log into the OWA URL and send an email from you to another user. Do they get it? And if they do they should reply and do you get it? Both have to be successful to consider this a successful test. In my case yes, successful.
Test 3 – relay – application generated email passed to Exchange and to external user
This test is likely the most important in this lab since it will be relaying email from applications and systems to me! First test – using Log Insight (why did I use LI? Because it passes out to UI error messages) failed. Got a 550 5.7.1 Unable to relay message. So adding above in Miscellaneous how to avoid that. So after the change, in my case this worked fine.
- Deployment Assistant – here
- Docs – here
- Third party install articles – part 1, part 2, and part 3.
- Your Admin Center –> https://FQDN/ecp
- Your OWA User access –> https://FQDN/owa
- Help with the relay – here – has some good info if you get timeout errors when relaying.
Thanks for reading, and let me know if you have questions or comments. Please also be aware that I am not an Exchange guy. I have put lots of time into this article, and while it works I may have missed something, and for sure I can learn more about Exchange. Please do not hesitate to make suggestions or share comments, in fact I would appreciate it a lot.
=== END ===