Like most human creatures, I’ve developed a few habits over the years, some good, but I’m sure most are not so good.  One of the better habits, is how I tend to build and configure my test labs for IT projects.  Every so often I will toss a wrench in and see what happens.  That doesn’t work too well with a real car engine, but in a virtual lab environment there’s more forgiveness built-in.  My first step is always to patch the computer and then make adjustments to establish a common platform on which to do work (or break things).


If you’ve ever been part of, or watched, how SPECOPS folks line up to jump from an airplane, it’s more than just jumping in line and jumping out.  There’s a meticulous sequence of things to check, double-check, and re-double-double-check, and then check again.  Then when the light turns green, those things can be offloaded from the front of their minds so they can focus on the immediate task: landing safely.

Case in point: SCCM 2012 R2

If you’ve worked with any of Microsoft’s server-oriented products, you probably know how they often come with a list of things you have to do before you install the product, as well as things to do afterwards.  Here’s a sample/example list of folders and what they’re used for in my lab:

  1. RDT
    1. Aka “Rapid Deployment Tools” / a collection of custom scripts for setting up my lab VM environment quickly.  This includes provisioning the guest machines in Hyper-V or VMware Workstation (now, mostly Hyper-V), configuring the base guest environments after OS installation (user accounts, folders, desktop shortcuts, etc.)
  2.  SQLServer_2012
    1. Contains the ISO for SQL Server 2012 Standard or Enterprise and the appropriate license key (if not using eval install)
  3. SCCM-Prereqs
    1. Contains MDT, ADK, etc.  I also break them down (for now) by 8.1 and 10.0 products.  This way I remember to install the 8.1 items to support SCCM 2012 R2. Then later I rip out what I have to in order to install the 10.0 items.  It sounds painful, but they never scream.
  4. SCCM-2012-SP2
    1. Contains the extracted SCCM 2012 installation payload (e.g. splash.hta, etc.) with Service Pack 2 included.
  5. SCCM-2012-R2-SP1
    1. Contains the extracted SCCM 2012 R2 installation payload with Service Pack 1
  6. SCCM-2012-R2-SP1-CU1
    1. Contains the Cumulative Update 1 installer package.
    1. Contains Right-click Tools, CM Toolkit, Health Check scripts, Sysinternals tools, duct tape, chewing gum, etc. etc.

All of this mess is stored on a thumb drive so it’s portable.  Obviously, the structure shown above is subjective.  If you ask ten engineers you could easily get twenty different suggested approaches.  Such is life, and vive la difference!

Tweaking Notes

  • Desktop shortcuts
    • Note:  All of these are either dropped on the desktop via a script when in workgroup mode, or added via GP Preferences by linking the GPO to a “Servers” OU when domain-joined.
    • “Shut Down”  = “shutdown -s -f -t 0”
    • “Restart” = “shutdown -r -f -t 0”
    • “Log Off” = “logoff.exe”
    • “Manage” = “compmgmt.msc”
    • “Registry” = “regedit.exe”
    • “Command” = “cmd.exe”
  • Staging apps and utilities
  • Special configurations
    • AD Users and Computers:
      • Select “View” and select “Advanced”
      • Create root-level OUs:
        • Servers (for server accounts)
        • Devices (for client device accounts)
        • SCCM (for SCCM user accounts, groups, etc.)
      • Open CMD and run redircmp.exe, direct to Devices OU
    • Task Manager:
      • Select “More details…”
      • Right-click column headings: add PID and Process Name to display set
    • File Explorer:
      • Select “View”, select the Pin icon to the far right
      • De-select “Use checkboxes”
      • Select options to show File Extensions and Hidden Items
      • Select the “Navigation Pane” link: select “Expand to open folder”
  • Role-Based Tweaks
    • Packaging / Reference Machine only
      • Create folders in root of C:
        • Packages
        • Apps
        • Utils
      • Disable services (background noise)
        • Windows Search
        • Updates (Microsoft, Adobe, Google, whatever)
        • Windows Firewall **
        • UAC **
      • Set Power Scheme to “High Performance”

** the only time I ever disable UAC is on a packaging reference machine.  ever. ever. ever.  Firewall is disabled unless the apps I’m working with involve firewall port configurations.

Role-Based Configurations

From here, additional tweaking will depend upon the intended purpose of the lab machine.  For example, will it be a general-purpose Active Directory machine, a Domain Controller, or a System Center 2012 R2 Configuration Manager CAS or Primary Site Server.  Or will it be used for AdminStudio packaging or App-V sequencing?  Or will it be used for image testing (MDT, OSD, etc.)?  Of all these, the one that gets the most additional tweaking is when the computer will be used as a reference machine for AdminStudio packaging.


I usually configure the machine as a workgroup (standalone) computer, with a host-only connection. The following are often part of that platform setup:

  • Create a root folder named “Packages” for captured repackaging output
  • Create a root folder for Sysinternals utilities
  • Create a root folder named “Apps” for general purpose apps, utilities, etc.
  • Create a root folder named “Scripts” for storing scripts

Clean-up, Seal-up

  • Delete all “temp” folder files
  • Clear-out all system and app logs
  • Delete all tmp install and setup log files
  • Delete unused user profiles
  • If you plan on making clones or reference links, run SYSPREP
  • Create a baseline Snapshot

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s