DISM GUI moved to GitHub

February 19, 2018 2 comments

With the shutdown of Codeplex I have moved the source code and download for DISM GUI to GitHub.  No changes have been made to the source code and only the last release of DISM GUI is available.

I have not had time to update DISM GUI in the past few years due to other responsibilities.  Maybe I will be able to get back to it someday but right now I don’t see that happening soon.


Categories: DISM, DISM GUI Tags: , ,

Finding which LUN a datastore is on

January 25, 2018 1 comment

Recently we were doing some reconfiguration of our SAN and need to consolidate our VMFS datastores.  This required us to remove some LUNs and datastores.  While I was pretty confident our naming convention was correct between VMWare and one of our SAN arrays I wanted to be extra careful when removing the LUNs.  To my surprise I could not find a way to see which LUN a datastore was on in VMWare vCenter (6.0).  I checked everywhere I could think of but could not find any mapping.

Even though this information is not exposed in vCenter you can easily find it with PowerCLI with a simple one liner.

get-datastore “Datastore Name” | Get-SCSILun | ft CanonicalName

This finds the VMFS datastore and pipes the object over to Get-SCSILun which returns the LUN it’s store on.  You can do this for all datastores but the Get-SCSILun cmdlet is very slow so if you have dozens or hundreds of datastores this can take a while to run.

Categories: Powershell, VMware

DISM GUI 4.0 Beta Available

September 25, 2014 49 comments

It’s been a long time coming but I finally got around to updating my DISM GUI program to version 4.0.  I am treating this release as a beta as I have not had a chance to fully test everything yet.  You can find the download on the DISM GUI GitHub site.

A few of the changes I implemented in this version

  • The .NET framework 4.0 is now required.  The previous version required 2.0.
  • Updated for DISM 6.3.  This version may work with older releases of DISM but some feature may not be available.
  • Added Capture and Apply tabs – This was the single most requested feature.  Requires DISM 6.2 or higher
  • Added a Read Only option to the mount control tab
  • Corrected some spelling errors

This version *should* run under WinPE however I have not tested it yet.  If anyone has success running it under WinPE make sure to leave a comment.

Upgrading iLO 2 Firmware through SSH

May 12, 2014 5 comments

Recently I had a problem upgrading the iLO firmware on one of our servers through the GUI.  This particular server did not have an OS on it at the time so normally I would update through the web interface.  However since the firmware on this machine would not work with IE 11 I had no choice but to upgrade through SSH.

Before you start copy your firmware file (ilo2_225.bin in my case) to a local web server and make note of the URL.

  • Login to the iLO with your favorite SSH client.
  • Once connected type “cd map1/firmware1”
  • Now type the following command replacing the URL with your own URL.

         “load –source

  • The update will now begin.  It can take up to 10 minutes for the process to complete.  You will be disconnected from your session during the upgrade. 
  • Login to iLO again and type “version” to verify the update has been completed.
Categories: HP Tags: , ,

HP iLO Reset

May 9, 2014 2 comments

Resetting an HP iLO2 using SSH or Telnet isn’t the most obvious thing to do. Recently I had one where the web interface wasn’t responding and I didn’t want to power down the server to reset iLO.

  1. Connect to the iLO IP address using your favorite SSH client. I prefer Putty.
  2. Login with your Administrator account. Don’t forget bother username and password are case sensitive.
  3. Once logged in you need to go to the map1 directory. type cd map1
  4. The type reset. The iLO card will restart immediately after that.

Easy as pie!

Categories: HP Tags: , ,

Preinstalling IE10 on Windows 2008 R2/Windows 7 could cause issues in MDT 2012

August 2, 2013 Leave a comment

I was updating our current Windows 2008 R2 image for MDT with all the latest security updates and ran into an annoying issue. After capturing the image and deploying it to VM (or a physical machine) I kept getting the error “Windows could not parse or process the unattend answer file for pass [specialize]”. I thought this was really odd because MDT created the Unattend.XML file for me. The same process has worked for me for over a year, why all of a sudden did it stop working?

I found my answer at this link. I must of accidently installed IE10 when doing my security updates. In the unattend.xml file there is a line for IE9 called . This does not existing in IE10 so it causes the specialize phase of Sysprep to fail. Below is a excerpt from the unattend.xml file that was causing the issue. You just need to comment out the line  <IEWelcomeMsg>  and you should be all set.


Categories: Deployment, MDT, Windows Tags: , ,

SQL 2008 R2 Edition Upgrade Architecture Mismatch

August 2, 2013 5 comments

Recently I had to upgrade a SQL 2008 R2 Express edition to Standard.  I knew with SQL 2008 R2 this was very easy to do using the wizard.  However on the server I was trying to change the edition on I kept getting an error during the checks about architecture mismatch.  I thought this was weird since the installer includes both x86 and x64 versions and choose the correct version based on the OS.

Well it turns out the application that installed SQL Express installed the x86 version even though the OS is x64.  When starting the SQL installer it automatically chose the x64 version to match the OS.  No matter what I did it would not find my x86 version of SQL Express already installed.  I found lots of other people on the Internet with the same issue but it looks like most people just gave up and installed SQL over again.

I knew there had to be a way and after messing with the SQL installer I found it.  Buried in the Options of the SQL installer is a way to choose your processor type. 


Changed it to x86, started the installer over again and bam instantly recognized the Express version installed.  5 minutes later I was happy camper.  Hopefully this help out someone else that was having the same issue!

Categories: SQL Tags:

DISM GUI 3.5 Released

February 13, 2013 18 comments

It’s been almost a year since the last release but I just uploaded DISM GUI 3.5 to the Codeplex site this morning.  It contains a few background bug fixes and a few new features.  For this version I have kept it compatible with the Windows 7 WAIK and DISM version.

  • Added Edition Servicing tab
  • Added the ability to apply and unattend file
  • Added application servicing tab

It’s not a major release but adds most of the features available in the Windows 7 DISM program.  You will notice that there is no “online” functionality to allow it to operate on the running OS.  That is something I had planned to put in but was proving hard than I thought with the current version.  I’m hoping to include that in version 4.0

Speaking of version 4.0.  I don’t have a timeframe to release it yet but I do have some of the features planned.

  • Online mode – Allow DISM to be used against the currently running OS.
  • Windows ADK compatibility – The next version will rely on the Windows ADK and DISM version included in it.
  • WinPE compatibility – I am planning on making the next version work inside WinPE.
  • Powershell backend – This one is still up in the air but I may convert the backend to the new Powershell cmdlets instead of relying on DISM.exe.
      There might be more features added but this is what I am planning now.  If you have a suggestion add it to the



Codeplex DISM site

So where have I been? Exchange 2010!

October 3, 2012 Leave a comment

So it’s been over 3 months since I posted anything to this blog and some of you may have wondered if I gave up on it.  I haven’t given up but I haven’t been posting much because I am working on a huge Exchange upgrade for my employer.  We are migrating from 2003 to 2010 and this project has been taking up most of my time.  We are consolidating 15 Exchange servers in 7 different countries down to just 6 servers in 3 countries.  We are using this consolidation opportunity to also deploy some server redundancy that we never had before (DAG and CAS makes this easy!) too.  It’s been a demanding project but we are in the home stretch now.  Over the next few weeks I’ll be putting up some posts about Exchange 2010 and things I’ve learned. 

Here’s a few links I want to share.

I’m hoping once this project settles down I’ll have some time to work on DISM GUI 4.0.  I’ve been collecting the ideas and hoping I can implement some of them. 

Categories: Exchange Tags:

Exchange 2010 Mailbox Moves from CSV file

October 3, 2012 7 comments

Recently during our Exchange migration I wanted a way to automate our mailbox moves.  Even though PowerShell makes this is very easy to script I couldn’t just use a normal filter because the mailboxes I am moving need go to one of three different databases.   I couldn’t use the New-MoveRequest cmdlet with a normal filter because none of the mailboxes had any common attributes to filter on.    Instead I created a CSV file with the mailbox name and the target databases.  In the past this would have meant many lines of VBscript code but with PowerShell this can all be done with a one liner!  Then using PowerShell I read this information in and pipe it over to the New-MoveRequest cmdlet to initiate the mailbox moves. 

My CSV file looks like this.

UserID TargetDB
User01 MBX01
User02 MBX03
User03 MBX02

The PowerShell script looks like this.

Import-Csv .\Filename.csv | % {New-MoveRequest -Identity $_.UserID 

-TargetDatabase $_.TargetDB}

I also created another one for ad-hoc moves.  This Powershell script allows me to specify the CSV file that I want to use instead of hardcoding it into the script.


$csvfile = Read-Host "Enter in the name of the CSV File that contains the mailboxes you want to move"

Import-Csv $csvfile | % {New-MoveRequest -Identity $_.UserID -TargetDatabase $_.TargetDB}

If you haven’t started using PowerShell for scripting tasks I highly recommend that you start looking into it.  It’s got a bit of a learning curve but it’s very powerful once your get a good grasp on it.

Categories: Exchange, Powershell Tags: ,
%d bloggers like this: