A small problem

My site is currently in the process of moving hosting. I have set up a temporary wp site. Apologies for any inconvenience.

Adding PowerShell support to WinPE using MDT 2012 RC1

After my last post about adding PowerShell support to WINPE I installed the latest MDT build.

Adding PowerShell support to WINPE is much easier using MDT.

Download MDT from connect Join the beta

Once installed add or create a deployment share.

Right click on the share and click properties.

Go to the Windows PE tab then click the features tab.


Select the features you want to add, click apply.

Close all the properties. Right click on the deployment share and click on update deployment share.

Once the update is complete you can use the WINPE ISO that MDT created to run PowerShell.


When PE starts up press F8 and run PowerShell by simply typing PowerShell



Make a Powershell Windows PE ISO

Oh I’ve been waiting a long time for this. PowerShell within WinPE

I was really excited about this functionality mainly for deployments but with the new ADK Windows Assessment and Deployment Kit (ADK) for Windows® 8 Consumer Preview http://www.microsoft.com/download/en/details.aspx?id=28997 it is possible to create WinPE ISO files and UDF/USB drives with a fully functioning PowerShell V3 shell inside.

Follow these instructions to install PowerShell within PE

These instructions are for installing PowerShell only, it does not include any instructions for adding network drivers or additional PE configurations required for production environments

Download the adkadksetup.exe from here http://www.microsoft.com/download/en/details.aspx?id=28997

Install the ADK to a location of your choice

Once installed open the deployment and imaging tools as an administrator

Create the WinPE files by running the command copype amd64 c:winpe_amd64

or for x86

copype x86 c:winpe_x86

Create a directory like c:mount

Mount the PE boot.wim by running the command

dism /mount-wim /wimfile:C:winpe_x86mediasourcesboot.wim /index:1 /mountdir:C:mount

or for X64

dism /mount-wim /wimfile:C:winpe_amd64mediasourcesboot.wim /index:1 /mountdir:C:mount

once mounted add the required packages from the location you installed the .. Assessment and Deployment KitWindows Preinstallation Environmentx86WinPE_OCs

or for X64

Assessment and Deployment KitWindows Preinstallation Environmentx64WinPE_OCs

Please note..For my testing, I added every package apart from the WinPE-Setup.cab as this caused issues within PE.

You can add the packages by running the DISM command..

dism /image:c:mount /add-package /packagepath:"C:Program Files (x86)Windows Kits8.0Assessment and Deployment KitWindows Preinstallation Environmentx86WinPE_OCsWinPE-WMI.cab"

Once you have added the packages, drivers ect you must unmount the file and commit the changes with DISM

dism /unmount-wim /mountdir:c:mount /commit

The last step is to create the WINPE bootable image. By using the MakeWinPEMedia file you can create a udf or iso file from the contents of the c:winpe_x86 or x64 directory.

makewinpemedia /iso c:winpe_x86 c:winPE_x86.iso


makewinpemedia /iso c:winpe_x64 c:winPE_x64.iso

For this demonstration I created an ISO to test on Hyper-V

Powershell runs when typing the command Powershell into the command prompt.

Powershell is running on V3 within the host and get-command shows 366 cmdlets





What I think of Teched Europe

In 2010 I was very fortunate to receive a ticket to Teched Europe in Berlin. 

I had never been to such an event before, I assumed it would be a bigger version of a Techdays event where IT pros and Developers would get together and hear about the latest technology. 

How wrong was I? 

The first day there was shocking. I walked into this massive building full of experts from around the world. I couldn’t believe the size and the amount going on. It was more like going to a rock concert than going somewhere boring to learn a bunch of things.

I was amazed by these huge entrances with friendly staff on hand to help you with all your issues, with these huge displays explaining what sessions were on that day.

It was easy to get lost in the centre, on the first day I was chased out of the exhibitors hall by a burly German security guard because I had wandered in before it had opened. 

Each room was huge, some full of lunch tables, some full of workstations allowing you to browse the internet or take part in one of the provided labs. 

On the first day I remember searching Berlin for drinks and snacks just in case the centre did not supply such items. I couldn’t believe my eyes when I spotted the fridges full of soft drinks freely available to all attendees, and if you’re anything like me that’s heaven. 

Breakout tables were plentiful, with tables set up in various locations stocked full of pastries, hot drinks and snacks. Each day I would find people walking around with pints of German beer. It was like heaven to me, Microsoft, learning, tech, and Fraulein’s walking around giving you free beer. 

But the freebies aren’t the reason why you should come to Teched. 

Just imagine reading a blog post or a watching a broadcast about a technology subject and getting to speak to the author or speaker face to face afterwards. I had a few opportunities like that; I met a lot of MVP’s, MCT’s, and speakers whose blog posts I had read for some time. I can honestly say I have never learnt and taken in so much in one week. Teched is a huge learning and networking opportunity. I met many people and to this day still talk to them on a regular basis. 

Teched is a huge opportunity to meet your peers, Teched has a large Technical learning centre full of experts ready to help with any questions about Microsoft technologies. I met many MVP’s and product experts, even the super stars such as Steven L Rose, Jeffery Snover, and Simon May were more than happy to stop and chat with me. 

On the other side of the building is the vendor village where hundreds of vendors are there to show off their latest technologies. 

If you want to learn more in a week then you ever thought possible, meet your peers, and spend some time in one of the most amazing cities in Europe you really should consider going to Teched Europe. If you’re anything like me you will think it’s one of the best weeks you have ever had. 

Booting a boot from VHD VHD drive to Hyper-V

Now that Windows 8 beta is out for playing on, I decided to try booting my boot from VHD Server 2008R2 test server from the newly installed Hyper-V role.

As soon as I started up the server I received a Blue screen of death error: Stop 0x0000007B.

This error occurs when mass storage drivers are not available on the new machine.

As you may or may not be aware, Hyper-V only supports booting from IDE devices.

Even though my server had the necessary drivers, it still would not boot.

The following Microsoft KB article http://support.microsoft.com/kb/314082 is applicable to the XP operating system but some of the resolution worked for me and might work for you.

What worked for me was the registry merge instructions, I merged the reg key and hey presto everything worked.

Hope it works for you.


Copy the following information into Notepad, and then save the file. Name the file Mergeide.reg, without the .txt file name extension.
********** Start copy here **********

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabaseprimary_ide_channel] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”atapi” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasesecondary_ide_channel] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”atapi” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase*pnp0600] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”atapi” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase*azt0502] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”atapi” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasegendisk] “ClassGUID”=”{4D36E967-E325-11CE-BFC1-08002BE10318}” “Service”=”disk” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#cc_0101] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_0e11&dev_ae33] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1039&dev_0601] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1039&dev_5513] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1042&dev_1000] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_105a&dev_4d33] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1095&dev_0640] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1095&dev_0646] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1095&dev_0646&REV_05] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1095&dev_0646&REV_07] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1095&dev_0648] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1095&dev_0649] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1097&dev_0038] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_10ad&dev_0001] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_10ad&dev_0150] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_10b9&dev_5215] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_10b9&dev_5219] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_10b9&dev_5229] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”pciide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_1106&dev_0571] “Service”=”pciide” “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_8086&dev_1222] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”intelide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_8086&dev_1230] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”intelide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_8086&dev_2411] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”intelide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_8086&dev_2421] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”intelide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_8086&dev_7010] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”intelide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_8086&dev_7111] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”intelide” [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabasepci#ven_8086&dev_7199] “ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}” “Service”=”intelide” ;Add driver for Atapi (requires Atapi.sys in Drivers directory) [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesatapi] “ErrorControl”=dword:00000001 “Group”=”SCSI miniport” “Start”=dword:00000000 “Tag”=dword:00000019 “Type”=dword:00000001 “DisplayName”=”Standard IDE/ESDI Hard Disk Controller” “ImagePath”=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00, 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,61,00,74,00,61,00,70,00,69,00,2e, 00,73,00,79,00,73,00,00,00 ;Add driver for intelide (requires intelide.sys in drivers directory) [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIntelIde] “ErrorControl”=dword:00000001 “Group”=”System Bus Extender” “Start”=dword:00000000 “Tag”=dword:00000004 “Type”=dword:00000001 “ImagePath”=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00, 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,6e,00,74,00,65,00,6c,00,69, 00,64,00,65,00,2e,00,73,00,79,00,73,00,00,00 ;Add driver for Pciide (requires Pciide.sys and Pciidex.sys in Drivers directory) [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPCIIde] “ErrorControl”=dword:00000001 “Group”=”System Bus Extender” “Start”=dword:00000000 “Tag”=dword:00000003 “Type”=dword:00000001 “ImagePath”=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00, 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,70,00,63,00,69,00,69,00,64,00,65, 00,2e,00,73,00,79,00,73,00,00,00 ********** End copy here **********


  1. In Microsoft Windows Explorer, right-click the Mergeide.reg file, and then click Merge.The OS displays the following message:

    Are you sure you want to add the information in Mergeide.reg to the registry?

    Click Yes.


Hey, I’m on the radio!

Last week I had the pleasure of being interviewed for the Get scripting podcast. In the podcast I talk about PowerShell and MDT, why PowerShell is the best thing since slice bread, and meeting men on the Severn bridge! Listen to the podcast here.


Get scripting podcast


!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=”//platform.twitter.com/widgets.js”;fjs.parentNode.insertBefore(js,fjs);}}(document,”script”,”twitter-wjs”); !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=”//platform.twitter.com/widgets.js”;fjs.parentNode.insertBefore(js,fjs);}}(document,”script”,”twitter-wjs”); !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=”//platform.twitter.com/widgets.js”;fjs.parentNode.insertBefore(js,fjs);}}(document,”script”,”twitter-wjs”);




Lync 2010 on Android

Microsoft has released an app for Lync 2010 on the Android mobile platform.

It allows Android owners to connect to Microsoft’s unified communication solution, Lync.

One way to use Lync is by subscribing to Office365. Once your Office365 accounts are set up with Lync licences it takes seconds to get your Android device connected to your Lync account.


Open the Lync 2010 app on your device.


Enter your Office365 user name and password. Click sign in.

If everything goes to plan, you should connect to your Lync server.


Once connected you will be able to connect to other contacts.

Once I have some contacts I will be able to explore more of the app.

From first experiences the app is very slick, with a polished interface, not bad for a first release.