How to: Boot Windows Server 2008 R2 or Windows 7 from a VHD

17 02 2010

I have now done this multiple times and was recently requested to write a quick how to on my blog so here it is. Windows 7 and Windows Server 2008 R2 both support being booted and installed as a VHD (Virtual Hard Disk). Rather than being installed physically on the disk – the operating system is simply is stored as a VHD file on your hard drive.

**Please note you will need an existing normal installation of Windows 7 or Windows Server 2008 R2 on your computer for this to work!**

Follow the steps below to get up and running:

  1. Boot from the Windows 7 or Windows Server 2008 R2 DVD
  2. When the first installation dialog appears press SHIFT + F10 to open the command prompt
  3. Type ‘diskpart’ and hit ENTER
  4. When the diskpart prompt appears enter the following command – create vdisk file=c:\vdiskname.vhd type=fixed maximum=20000 (this will create a VHD that is 20 GB in size on your C: drive). Make sure you change ‘vdisknamne’ to whatever you want to the VHD to be called. You can also use type ‘expandable’ instead of fixed if you wish so that the VHD expands automatically.
  5. Next type select vdisk file=c:\vdiskname.vhd – where ‘vdiskname’ is the name of your VHD
  6. Finally type attach vdisk
  7. Exit from diskpart and the command prompt
  8. Continue with the installation – when it comes to selecting the partition on which to install the operating system select the newly created VHD partition. Ignore any warnings like ‘you cannot boot from this partition’ as it will boot fine.
  9. Success – once the installation is finished and you reboot your PC you will see a new option in your boot menu to boot from your new VHD.

Hope this helps :-)!

Getting field values of an SPListItem returned from an SPQuery – watch out!

16 02 2010

I have seen and read about this gotcha before but even so I still fell for it today and it took for a couple of hours to figure out so I’ve decided to blog about it.

If you are working with SharePoint items in code which you have returned using a CAML query then you should always populate the SPQuery instance’s ViewFields property. You must include in here all the fields for which you might need to get the value of later. Failure to do this will mean the returned SPListItem instances might not contain the data for certain fields and will throw an exception (usually ‘Value was not within the expected range’).

The ViewFields property is set like this:

    <fieldref name="Title" /><fieldref name="Created" /><fieldref name="ID" />


You can then access a fields value on an SPListItem instance using the normal code:

    SPListItem item = list.GetItemById(1);

    string Title = item["Title"].ToString();


Hope this helps!!

Removing a Custom Nintex Action

11 02 2010

Today I needed to remove a Nintex custom action that I had produced from my SharePoint environment and couldn’t see any options to do this on the ‘Manage Allowed Actions’ page in Central Admin . A quick Google (errm I mean Bing!) search revealed a forum thread at the Nintex connect website, the forum thread mentioned going into the database to remove the action.

I didn’t fancy doing anything that drastic! so I did some more searching and then I found out that there is actually a command line tool called ‘Naming.exe’ which is supplied with Nintex Workflow 2007 and resides in the following folder:

C:\Program Files (x86)\Nintex\Nintex Workflow 2007\

This tool is similar to STSADM and allows you to remove a custom action. To remove an action use the following command:

NWAdmin.exe –o RemoveAction

You need to give this command the namespace and type name of your adapter. After this command has run you will need to execute another command:

NWAdmin.exe –o RemoveSafeActions

This command will remove the references to the action assembly from the web.config files of your SharePoint sites.

Hope this helps!

Debugging SharePoint code when using PowerShell

10 02 2010

Note to self and anyone else who is interested –

When trying to debug code – a FeatureReceiver in my case with Visual Studio when you are using PowerShell to actually kick off the event you need to ‘powershell.exe’ process in addition to the normal w3wp worker processes. If you don’t do this then your breakpoints won’t get hit it seems.

Hope this helps someone!