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
    
  • Disable LoopBackCheck in the registry

  • Disable IPv6 in the registry

  • Disable User Account Control

  • Disable Certificate Revocation List checking by modifying the 4 machine.config files

  • Disable the firewall. Here’s how that’s done in the command prompt:

    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.