I use virtual machines for testing at work. The way I go about this is to create a base VM with whatever general purpose tools and configuration I’d like to have available. I run updates on it occasionally and then make a copy whenever I need a new test VM. I had bad experiences with VM cloning in the past, but that’s probably something I should look into again at some point.
I’m installing a new base VM of Windows Server 2012, so I thought for future reference I’d list the changes I make. A lot of the changes I make are strictly personal preference.
Server Roles
As a starting place, after Windows is installed, I add the IIS Role and the Remote Desktop Services Role (RD Session Host). Though I haven’t actually tried it yet, I’d like to try the Citrix style RemoteApp functionality so I can run individual apps from VMs remotely on my primary desktop.
Features
In addition to the .NET Framework options, I add the “Desktop Experience” feature listed under “User Interfaces and Infrastructure”. You wouldn’t think from the description that this would add much value, but I’ve run into a few places where there are seemingly random dependencies on this feature. I test server and client applications on the same systems, so it isn’t a bad idea anyway.
After all roles and features are installed run Windows Update to get everything totally updated.
First!
As long as the VM is network accessible, it’s easier to remote in to do everything. So enable Remote Desktop in the System Properties on the Remote tab. Second, disable Internet Explorer Enhanced Security Configuration so you can more easily use it to get any utilities you need. Remember, this is an internal VM for testing things and is only even running as needed, so security features are lower priority than VMs for production purposes.
Ninite
Ninte is amazing! I used it to install:
- Chrome
- Silverlight
- 7-Zip
- IrfanView
- SumatraPDF
- FileZilla
- Notepad++
- Classic Start
Keep the installer, because rerunning it will update the applications if needed.
Folders
- C:Apps – The way I prefer to do things I create a folder called Apps for small single exe utilities. SpaceSniffer is the first thing I add here because it helps clean up if I end up needing to trim the size of the VM.
- C:Sysinternals – for the whole SysInternals Suite. I add this to the system PATH variable so I can quickly run anything. I also want this to always be up to date, so I use a scheduled task to run one of the following at logon
- As long as you are 2008+ (so you have robocopy) and you have Desktop Experience feature added (so you can use WebClient), you can run this simple script with Admin privliges.
-
net start webclient
robocopy.exe \live.sysinternals.comtools “C:SysInternals”
net stop webclient
- If you cannot meet those requirements, such as when you are using XP/2003, or cannot install the Desktop Experience feature, use SysInternalsUpdater with the /auto parameter
- C:Downloads – Not that I’m frequently downloading anything on these systems after initial install, but it bugs me that downloads go into the user folder. After creating this folder, I go to C:Users[username] and right-click on Downloads, then on the Location tab change it to C:Downloads. Now Chrome, IE, etc will know to use this as default.
- C:NirSoft – I don’t use NirSoft tools nearly as much as Sysinternals, but they can be nice to have available.
- Mapped Drives – Because these VMs are not on the domain, I map a consistent drive letter to a common fileshare so it is easy to move files between VMs and my desktop. Longer ago I had problems with just telling Windows to remember the mapped drive, so I use a script like this at startup. The user is specifically for these shares.
net use [drive]: /DELETE
net use [drive]: \[server][share] [pass] /USER:[serveruser]
7-Zip
In the 7-Zip options on the 7-Zip tab I uncheck “Cascaded context menu” and leave only
- Extract Here
- Extract to <Folder>
- Add to <Archive>.7z
- Add to <Archive>.zip
On the Settings tab, check Show “..” and Full Row select.
Other
Agent Ransack/FileLocator Lite – Same program, just renamed by the author to have a “safe for work” name. Very nice search application.
Notepad++ XML Tools – Some programs write XML without whitespace, which is painful to read without the pretty print feature (Ctrl+Alt+Shift+B). Install from the Plugin Manager within Notepad++.
Disable the Shutdown Event Tracker
Scripts and exported registry settings for the topics mentioned above: ExtractToRootOfNewInstall.zip
For my home system it starts the same then add gaming and development apps.