Getting Windows build number

Normally you can just use “winver” (or “ver” in command prompt) to get the version number but it doesn’t always return the build number.

You can find the build number in the registry; use the following command in cmd:

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | findstr BuildLabEx

Windows ISO version checking

If you want to see which version of Windows is contained in an ISO image, mount the image and run the following command in an elevated cmd/powershell window:

dism /Get-WimInfo /WimFile:A:sourcesboot.wim

Be sure to change A: to the correct drive letter where the image is mounted.  Also, combined x86/x64 ISO images will need to include the architecture before “sources”.

dism /Get-WimInfo /WimFile:A:x86sourcesboot.wim
dism /Get-WimInfo /WimFile:A:x64sourcesboot.wim

Lumia Denim now available for the AT&T Lumia 830!

Update: It appears like the new firmware has been removed; running WPRT now shows the old firmware.  I was fortunate enough that I was able to get it before removal and my 830 is running much better than before even on the current Windows Insider build.

Original post follows:

No, AT&T didn’t relent and release the firmware update; you will get the new firmware if you use the Windows Phone Recovery Tool (link at bottom of page) to reset your phone back to Windows 8.1.

Read more Lumia Denim now available for the AT&T Lumia 830!

Windows Server activation via KMS

Nothing is more fun that finding out a production server has not been activating via KMS like it was supposed to be doing.  Imagine my surprise logging in and seeing a “Windows is not activated” message.  Re-entering the correct kms setup didn’t solve it; in fact, it didn’t even send a KMS message to the server.

It turns out the server was in MAK licensing mode.  I found that out by running the command “slmgr /dlv” in an elevated command prompt and seeing VOLUME_MAK in the description.

Read more Windows Server activation via KMS

SQL Server: database owner SID issue

If you restore a database on a different SQL Server you may see the following error message:

The database owner SID recorded in the master database 
differs from the database owner SID recorded in database...

The solution is to change the authorization on the database to a known SQL account:

alter authorization on database::{databasename} to {username}

Simply replace the {databasename} and {username} with the appropriate names; the brackets should not appear in the SQL query.

Installing .Net 3.5 on Win8 using DISM

To install the .NET Framework 3.5 from installation media located in the D:sourcessxs directory, use the following command:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:d:\Sources\SxS


  • /Online targets the operating system you’re running (instead of an offline Windows image).
  • /Enable-Feature /FeatureName:NetFx3 specifies that you want to enable the .NET Framework 3.5.
  • /All enables all parent features of the .NET Framework 3.5.
  • /LimitAccess prevents DISM from contacting Windows Update.
  • /Source specifies the location of the files needed to restore the feature (in this example, the D:\Sources\SxS directory).

For more information about DISM parameters and options, see How to Enable or Disable Windows Features


Windows Explorer: open at Computer instead of Libraries

One of the changes in Windows 7 that really annoyed me (and continues to annoy me in Win8 RTM and Server 2012) is that the Windows Explorer insists on opening up in the libraries area instead of the computer (drives, etc) that was the previous default.

You can change that behavior by right-clicking on the Windows Explorer icon in the task bar and then right-click again on Windows Explorer (or File Explorer in Win8) and selecting Properties.

Replace the value listed in the Target field with the following string:

%windir%explorer.exe ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

This will force Explorer to open in the Computer area which is far more useful given the way I work.

Add/remove GUI in Windows Server 2012

In Windows Server 2012, Microsoft made it easy to add and remove the graphical user interface (GUI) using simple powershell commands.  Running a server without the overhead of the GUI (called Server Core) helps keeps the server more secure since less programs are running that could be exploited.  Running without a GUI should also help limit the number of reboots required every Patch Tuesday, but in truth I haven’t yet seen that many reductions in reboots on my Server Core systems.

To install the user interface, open powershell and type the following cmdlet:

Install-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra

Similarly, you can uninstall the user interface with the following cmdlet:

Uninstall-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra

Of course, running these cmdlets will require a reboot to finish the configuration.