Category Archives: Uncategorized

How to Fix the Disk Signature Collision Problem in Windows 7

In case I need to find this again, here is the link that will walk you through fixing VHD Disk signature collisions using Windows 7/Server 2008 R2.


How to attach a VHD like a regular hard drive in Windows 7

  1. Click Start Menu
  2. Right Click Computer and click Manage from the context menuimage
  3. Click Disk Management and wait for the right hand pane to loadimage
  4. Right click on Disk Management and select Attach VHD image
  5. Browse to the location of your VHD and then click OK image
  6. Now you should see a light blue disk drive in the right hand pane that represents your attached VHD image
  7. Now you can access this drive like you would any other hard drive.

How to Learn Something New Using the Internet

Many people are limited in what they can do because they don’t know how to learn to do something that they haven’t been taught already how to do. Well I have news, you can learn to do most anything without having to interact with a single human being. This is important because of the chronic unavailability of the human beings that would know how to do what you want to know how to do or the cost involved in soliciting those human beings to teach you. Granted many of us have been given a great many gifts throughout our lives represented in the things that people have taken the time to teach us that we may never have learned otherwise and to all those people who have helped us, Thank you.

For many things though there is a way for you to learn on your own if your willing.

  1. Wikipedia your topic
    1. Do this to refine exactly what it is that you want to learn and establish relevant terminology in your topic area
  2. Search ITunesU for your topic and any related terms
    1. You will often be able to come up with a couple of college classes and some free podcasts that are related to your topic
  3. Search Youtube for your topic and any related terms
    1. It’s amazing how much information is out there on youtube
  4. Google your topic and related terms
    1. Good old google, probably not the best place to start but once you have exhausted the others then this is where you go next

How to Access Your Computer Remotely for Free

Many services exist out there that offer go give you access to your computer over the internet for free. offers such services for a monthly fee. There are many services available that allow you to do this for free if you know how to use them.


    • Microsofts offering that allows you to sync up to 2 GB of data to the internet and then to as many machines as you add to your mesh
    • Along with the data sync you are also able to control each of the computers in your mesh from the website effectively giving you access to your whole computer for free
    • You have to have a windows live account to use this service but that is a small price to pay for free internet browser based remote desktop
  • VNC (Virtual Network Computing)
    • This is a server based product that you can install and configure to allow you to control your computer from any computer as long as it has a vnc viewer installed on it
    • You will have to install the viewer on whatever computer you want to use as the client
  • Remote Desktop (RDP, Terminal Services)
    • This is only an availible option on Windows XP Pro\Vista Buisness\Ultimate\Win 7 Business\Ultimate but it is the fastest option if not the easiest to configure.
    • You will need to setup your router appropriately

Control Windows Virtual PC from PowerShell

I have used the command line interface (CLI) for Sun’s Virtual Box and for Hyper V but I didn’t realize that Virtual PC also can be accessed through PowerShell. This might be the key to creating network based differencing disks natively on Windows 7 which currently isn’t something that can be done in a straightforward way through the GUI and even the way that it can be done has limitations (like not being able to create a differencing disk with the parent disk on the network).

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
PS H:\> $vpc=new-object -com VirtualPC.Application
PS H:\> $vpc
HostInfo                    : System.__ComObject
VirtualMachines             : System.__ComObject
VirtualNetworks             : System.__ComObject
UnconnectedNetworkAdapters  : System.__ComObject
SupportDrivers              : System.__ComObject
Tasks                       : System.__ComObject
MinimumMemoryPerVM          : 4
MaximumMemoryPerVM          : 3575
SuggestedMaximumMemoryPerVM : 3217
MaximumFloppyDrivesPerVM    : 1
MaximumSerialPortsPerVM     : 2
MaximumParallelPortsPerVM   : 1
MaximumNetworkAdaptersPerVM : 4
MaximumNumberOfIDEBuses     : 2
DefaultVMConfigurationPath  : C:\Users\cmagnuson\AppData\Local\Microsoft\Windows Virtual PC\Virtual Machines\
SearchPaths                 : {}
USBDeviceCollection         : System.__ComObject
Name                        : Windows Virtual PC
Version                     : 6.1.7600.16393
UpTime                      : 6
PS H:\> $vm = $vpc.FindVirtualMachine(
PS H:\> $vm = $vpc.FindVirtualMachine("IE 6")
PS H:\> $vm
Name                  : IE 6
ConfigID              : {DB33D85B-1FAC-4A67-910A-33EE4A4F06FC}
File                  : C:\Users\cmagnuson\AppData\Local\Microsoft\Windows Virtual PC\Virtual Machines\IE 6.vmc
Accountant            : System.__ComObject
GuestOS               : System.__ComObject
Display               : System.__ComObject
Keyboard              : System.__ComObject
Mouse                 :
State                 : 2
ShutdownActionOnQuit  : 0
SavedStateFilePath    : C:\Users\cmagnuson\AppData\Local\Microsoft\Windows Virtual PC\Virtual Machines\IE 6.vsv
BIOSGUID              : {D5356F8F-4383-4B68-ACDA-03D1A06E5C46}
BIOSSerialNumber      : 8425-1374-7407-2656-1007-9980-44
BaseBoardSerialNumber : 8425-1374-7407-2656-1007-9980-44
ChassisSerialNumber   : 8425-1374-7407-2656-1007-9980-44
ChassisAssetTag       : 1746-8710-8930-6641-7796-6780-67
HardDiskConnections   : System.__ComObject
Undoable              : False
UndoAction            : 1
DVDROMDrives          : System.__ComObject
FloppyDrives          : System.__ComObject
NetworkAdapters       : System.__ComObject
SerialPorts           : System.__ComObject
ParallelPorts         : System.__ComObject
ProcessorSpeed        : 2926
HasMMX                : True
HasSSE                : True
HasSSE2               : False
Has3DNow              : False
RdpPipeName           :
Notes                 :
Memory                : 1024
AttachedDriveTypes    : {1, 0, 2, 0}
PS H:\>

Original Source:

Outlook 2007 shortcuts that I use to deal with email efficiently

The following is a selection of keyboard shortcuts that I use to deal with the constant flow of e-mail:

CTRL + SHIFT + V to move an item to another location in e-mail
ALT + S to send an e-mail
ALT + N to start a new e-mail
CTRL + SHIFT + I to Navigate to the Inbox
CTRL + SHIFT + R to Reply to all
ESC to close the currently open window
ALT + . to add an address to the To of an e-mail
CTRL + 1 to go to Mail items
CTRL + 2 to go to Calendar
ESC close the currently open

For a more complete list of keyboard shortcuts check out this article.

The Scripting Series: Unattended Install of Visual Studio 2005 SP1 on Windows 7 x64 and Vista x64

How to install Visual Studio 2005 on Windows 7 x64 the Unattended way

  1. Extract your Visual Studio installation files to c:\VS2005
  2. Download Visual Studio 2005 SP1 and place it in c:\VS2005_Resources
  3. Download Visual Studio 2005 SP1 Update for Windows Vista and place it in c:\VS2005_Resources
  4. Create a new VS2005.ini Unattended answers file by running the following from a cmd prompt
    1. C:\vs2005\setup\setup.exe /createunattend c:\VS2005.ini
    2. Select the options you want to have installed during the unattended install and complete the wizard
      1. Keep in mind that the unattended file you create will only be usable on machines that have the exact same OS and architecture (x86 or x64)
  5. Copy and paste the following into a new bat file (c:\InstallVS2005.bat):

SET VisualStudio2005FilesPath=c:\VS2005
SET VisualStudio2005ResourcesPath=c:\VS2005_Resources</code>

echo Install Visual Studio 2005
echo -Install Prequisites
"%VisualStudio2005FilesPath%\WCU\64bitPrereq\x64\vs_bsln.exe" /Q
"%VisualStudio2005FilesPath%\WCU\DExplore\dexplore.exe" /q:a /c:"install.exe /q"

echo -Install Visual Studio 2005
"%VisualStudio2005FilesPath%\setup\setup.exe" /unattendfile "c:\VS2005.ini"

echo -Install Visual Studio 2005 SP1
"%VisualStudio2005ResourcesPath%\en_visual_Studio_2005 SP1 (VS80sp1-KB926601-X86-ENU).exe" /q

echo -Install Visual Studio 2005 SP1 for Windows Vista
"%VisualStudio2005ResourcesPath%\en_visual_studio_2005 SP1 Vista (VS80sp1-KB932232-X86-ENU).exe" /q

Once you have done all that run the c:\InstallVS2005.bat file from a cmd prompt with Administrator priviledges. Towards the end of the initial Visual Studio 2005 install windows 7 will prompt you with a warning about Visual Studio 2005 being a an application that it has trouble running. Dismiss the warning and allow the installation to continue.

Once the bat file is finished you should have a working Visual Studio 2005 installation.

The start of the Scripting Series – How to load IP Addresses into your hosts file through script

I have been doing a lot of work with windows  scripts (cmd/bat files, windows shell commands, vb scripts, etc) and wanted to share some of the things I have learned. I will be referring to bat files from here on out but you could also give your files the .cmd extension. Use whatever your comfortable with as there really is no difference on Windows XP and above.

How to load IP Addresses into your hosts file through script

The first thing your going to need if your going to work with bat files is a good editor. I haven’t found what I would consider to be an IDE for bat files (if you have any recommendations leave them in the comments) but the best text editor that I have found for bat files is NotePad++. I use the portable version and it at least provides syntax color coding for some of the basic elements of your bat files.

Now you can copy the following into a new text file and save it as ModifyHosts.bat

:: Misc Variables
SET IIS-Server_IP=
SET SQL-Server_IP=

echo Load hosts file entries
echo %IIS-Server_IP% IIS-Server>> %SYSTEMROOT%\SYSTEM32\drivers\etc\hosts
echo %SQL-Server_IP% SQL-Server>> %SYSTEMROOT%\SYSTEM32\drivers\etc\hosts

The basic idea is that you create variables that store the IP address for each server your going to need to reference in your configuration files for your applications. Some common examples would be:

  • web.config for an IIS web application
  • Application bindings for BizTalk
  • Connection strings in an application.config for a .Net application
  • Etc

I follow the convention of <ServerName>_IP for these variables and set them before executing a build script against a newly provisioned server.

What this allows you to do is to abstract which actual server is being referred to in the configurations of your various applications. We have used this to maintain a single source controlled web.config for a production website that is deployed to development, test, and staging environments without having to change the web.config. The only settings that have to change are the ip addresses for the associated server names listed in the hosts file and that is all done by this script.

This also allows us to source control our BizTalk application’s bindings and then be able to deploy the same set of bindings to development, test, and staging environments. All of the bindings refer to server names that are set in the hosts files of each of the individual BizTalk servers.

Hope you find this useful. I will add additional tips as I have time. Thanks

Tagged , , ,