My Test Environment Setup (Part 1)

I often get questions on how I have set up the virtual test environment on my laptop. As I recently repaved it completely, the time was there to record all the steps. This first post discusses the general setup and all the tweaks I make to my virtual machines.

Platform & Software

My laptop is a Fujitsu Lifebook E780 with a Core i5 processor and 8 GB of RAM. My primary disk is 120 GB SSD from Crucial, my second disk a 500 GB 7200 RPM drive. I only use external drives to store my ISO files and software - I don’t run VM’s off them.

I’m using VMware Workstation exclusively and I recently upgraded to version 8. Once Windows 8 RTM’s I might consider using Hyper-V in the future but hadn’t enough time to test it out yet.

I have 3 base images for creating my virtual machines in a consistent manner:

  • BASE1 – Windows Server 2008 R2 Enterprise
  • BASE2 – Windows Server 2008 R2 Enterprise Core
  • BASE3 – Windows 7 Enterprise

These base images use a preallocated virtual harddrive and a minimum of virtual hardware components:

Virtual Hardware

Tweaks

I have a checklist that I use to setup these machines. It basically goes like this:

  • Install the VMware tools
  • Enable remote desktop & remote management (use sconfig on Server Core)
  • Install CoreConfig on Server Core
  • Enable the telnet client and .NET 3.5 on all machines (using CoreConfig on Server Core)
  • Enable the WOW64 modules for PowerShell and .NET on Server Core to enable 32 bit (using CoreConfig)
  • Install .NET 4.0 on all machines (Server Core setup file available here)
  • Install Notepad2 and MyDefrag on all machines, even on Server Core
  • Install IE9, Silverlight 5 and 7-Zip on the non-Server Core machines
  • Disable the IE ESC mode
  • Set the administrator password to never expire. Here’s how to do that in PowerShell:
$user = [adsi]"WinNT://./administrator"
$user.UserFlags.value = $user.UserFlags.value -bor 0x10000
$user.CommitChanges()
  • Set the PowerShell execution policy to ByPass:
Set-ExecutionPolicy ByPass
netsh advfirewall set allprofiles state off
  • Activate the machine
  • Run WindowsUpdate (or Microsoft Update) and install all fixes
  • Run a few disk defrags with MyDefrag
  • Shutdown the machine
  • Create a “Baseline” snapshot
  • Create an additional snapshot that is sysprepped to clone from

Snapshotting strategy

When I first install a machine, I create a Baseline snapshot that is activated and not sysprepped. I then create another snapshot that is sysprepped to be cloned for my virtual machines.

Snapshots

Whenever I feel like updating my base image with new software or the latest fixes, I just revert to the Baseline image to keep it up to date:

Snapshots

When I updated the BaseLine I create a new snapshot that I use for future virtual machines:

Snapshots

Then when I want to create a new virtual machine, I clone from the latest snapshot I took:

Snapshots

In Part 2 I will show you how I set up my virtual network, virtual machines and domain infrastructure.