This guide should help you get past a few obstacles that come with hosting your own VMs, aimed at beginners supporting Windows-based products.
Why VMs?
Pros:
Easy to access.
Freedom of configuration.
Network freedom â accessible on your LAN.
Drive space / CPU / Memory
Cons:
May require high workstation resources.
- My build is Ryzen 9 12-core 3.8 Ghz, 32GB of RAM, 2TB NVME SSD.
May be difficult to host internet services, e.g. open ports to the internet.
Limited to your local internet bandwidth.
Popular VM choices
VMWare software. (Highly recommended by people.)
VirtualBox (I use this and itâs free.)
Useful Software
Windows Server (2012/2016/2019) Trials
Download from Microsoft Evaluation Center. Microsoft Evaluation Center
You can trial Windows Server for 180 days.
- I hear you can extend it further through a command-line thing as well, but 6 months is already a fat timespan for testing.
Exchange Server 2016 Trial
Cumulative Updates are full installers. See here for Exchange 2016 CU 18. Exchange 2016 CU 18
Unlicensed should last 180 days.
Exchange Server 2016 is not compatible with Windows Server 2019.
- Exchange Server 2013 is not compatible with Windows Server 2016.
Exchange Server 2019 is gated behind licenses.
Exchange installer is very user-friendly and will fetch most dependencies for you.
You need to configure autodiscovery in your DNS server for many services to work.
Windows 10
I believe these evaluations are 30 days. Just install without a product key.
https://www.microsoft.com/en-us/software-download/windows10 (- )(.*)
SQL Server Express
Free SQL Server!
See SQL Installation Tips below.
Python Python
- What kind of self-respecting admin doesnât have python on their machines?
Office
Offline installers are available so you donât need to redownload every install.
You need a license for use and for the download (I think), but I love Office and itâs quite affordable.
Main use on servers is for testing email and stuff with Outlook.
VM Setup Tips
I recommend at least 2 cores with 2GB of RAM per VM for testing a single piece of software.
Increase according to needs, or if you are putting multiple stuff on the same machine.
2 cores minimum. Some processes might choke a single-core server just because of poor coding practices (e.g. a busy wait).
Exchange is hungry software, give it 4GB+ of RAM.
Unless you want to specifically test networking, I suggest piling stuff up into one machine to make starting/stopping/management easier.
Network problems shouldnât really be a priority for testing.
There are a few security annoyances of putting everything on a Domain Controller though â youâve been warned.
SQL Installation Tips
Useful tips to avoid hair loss. :)
If you are having trouble connecting to an external server:
- Test your connection with:
sqlcmd -S ServerName\InstanceName -U username -P password
You will have to enable Mixed Mode authentication to login with a username and password.
The fabled âsaâ user that youâve heard so much about is disabled by default.
sqlcmd installer sqlcmd installer
- Requires ODBC driver ODBC driver
The Server Browser service may be DISABLED by default.
- This is required if you want to connect to a named instance (e.g. ServerName\InstanceName) from the outside.
[vmprimer1.png] [vmprimer2.png]
- You can also check on the network settings.
[vmprimer3.png]
VM Network Example
An example scenario which I think will be useful for many tests.
Install Active Directory Domain Services on one of your servers.
Two or more Domain Controllers are recommended for production networks, but one is absolutely fine for testing. Do so with Add roles and features.
You probably want a DNS server as well.
The installer is pretty user friendly. Promote the server to a domain controller when it prompts you, and then you should set up a new domain forest, e.g., âarch.localâ.
Donât be afraid to screw things up. That will help you learn. If your server ends up FUBAR somehow, just erase it and try again.
If you arenât familiar with Active Directory setup, I personally like the LinkedIn Learning crash course on it.
Once you have your DC set up, you can add other servers to it. You should be using a static IP address on your LAN for your DC + DNS server, and configure your LAN adapters of your other VMs to use that as a DNS server.
I also set my personal workstation to use the DNS server of my test DC, so I can access from my browser the local domain. (192.168.1.21 = Domain Controller and DNS Server, 192.168.1.254 = My router/Gateway [though the custom DNS server should also delegate addresses it canât find upward to the next level])
Join other test VMs into your new domain hosted by your DC. Iâll admit, one of those most confusing things to me when learning about Active Directory was how to join computers to a domain. I figured they needed some kind of service installed â but no, itâs all part of Windows.
For testing email servers and related things, you can send to person@yourdomain.local and such if you have your local DNS server and network configured properly.
Youâll probably want to add a super administrator for easy testing anywhere. I use SA everywhere.
Additional random notes
Youâll probably run into some hassles with file sharing and network options and such. Iâm not super sure on how permissions work with the Domain Controller. Here are some random notes of mine that I donât really remember what for.
Access Shared Folders
Servers may disable âinsecure guest loginâ by default, so pay the old lanman a visit. https://superuser.com/questions/1287731
Computer Browser service may also need to be enabled (???)
Admin Permissions
- May need to use gpedit.msc to allow access to local administration.