Galin Iliev's blog

Software Architecture & Development

Windows 7 RTM – code fully cooked

Today Microsoft announced that Windows 7 and Windows Server 2008 R2 code is signed off and is ready to go to manufacture – so this will be the code that end user will use.

Even more - partners and business customers can get their hands on Windows 7 RTM code starting next month.

I have been using Windows 7 and Windows Server 2008 R2 since their Beta and I dare to say that this is the fastest OS, I’ve ever worked with. You will like it for sure.

Both client (Windows 7) and server (Windows Server 2008 R2) are full with improvements and for sure these increase both the pleasure and the productivity.

How to turn Windows Server 2008 R2 into workstation with Aero

After I was using Windows Server 2008 as a workstation for a while I decided to move to R2.

Having the option to boot form VHD it was a nice idea- I could have as many OS-es as I want and they fully utilize the hardware. But one question remained: How I can turn Windows Server 2008 R2 into workstation and having all goodies of workstation including Aero interface.

The default installation seems to have following notable features:

  • Only x64 editions
  • Less driver support than Windows 7
  • No audio
  • Wireless disabled by default (after installing the driver)
  • Cannot select Windows 7 theme even after video driver selection.

So let’s nail those one by one:

Only x64 editions

Well… nothing can be done here. Time to move to x64 bit platform. Fortunately my laptop’s CPU was Intel Core2 Duo and can do it.

Less driver support than Windows 7

Luckily Windows 7 drivers work – as long as they support x64 bit. I had a hard time to find some for my Dell machine though… Note: Windows Vista x64 drivers worked for me as well…

No Audio

This was easy. The drivers were in place (with installation) and only had to play with some services:

  • Windows Audio
  • Windows Audio Endpoint Builder


I just started the first one and there was sound J

Wireless disabled by default

This was tough one (for me). I installed correct drivers. Everything seemed normal except I couldn’t enable the adapter. It was constantly disabled.


After every attempt to enable it remained disabled. In Event viewer I saw the following message:

Application popup: BCMWLTRY.EXE - System Error : The program can't start because Wlanapi.dll is missing from your computer. Try reinstalling the program to fix this problem.

The solution was to add the feature “Wireless LAN Service”


Just go to “Server Manager”, select Features from the tree on the left and select “Add Features”


Enable Aero theme.

This one was tough as well… I had to do several steps:

  1. Install video driver
  2. Add “Desktop experience” feature (together with .NET Framework 3.5.1)
  3. Start “Theme” Windows service.

4. Select performance options from System applet in Control Panel

5. Select theme from “Personalization” window


Happy binging! :)

Remote Desktops MMC for Windows 7

A while ago I blogged how to re-enable remote desktops MMC for Windows Vista. This feature has different names and it was hard to find initially :) In a comment one reader posted a way to enable it via “Programs and Features” – > “Turn Windows features On and Off” as suggested to search for “Remote Server Administration Tools"\"Role Administration Tools".

With Windows 7 it is different.. again. But this time no file copy and DLL register. First you need to download and install Remote Server Administration Tools for Windows 7.

And then navigate to “Programs and Features” –> “Turn Windows features on and off”:


Hope this helps

Boot from Virtual Hard Drive (VHD)

What a great improvement :). Now I can freely explore different messy things without having to wait whole night to reboot the virtual machine :)

In Windows® 7, a virtual hard disk can be used as the running operating system on designated hardware without any other parent operating system, virtual machine, or hypervisor. Windows 7 disk-management tools, the DiskPart tool and the Disk Management Microsoft® Management Console (Diskmgmt.msc), can be used to create a VHD file. A Windows 7 image (.wim) file can be deployed to the VHD and the .vhd file can be copied to multiple systems. The Windows 7 boot manager can be configured to boot directly into the VHD.

The .vhd file can also be connected to a virtual machine for use with the Hyper-V Role in Windows Server® 2008 R2.

Here are some interesting articles that could help you to do the trick:

You need to prepare the Virtual OS for the change in hardware from a virtual to a physical environment using the following Sysprep command:
c:\windows\system32\sysprep\sysprep.exe /generalize /oobe /shutdown

MS Operations Manager on Windows Server 2008

logo-header-sc-operationsmanager-dg Today I’ve installed System Center Operations Manager 2007 and run into an issue with WebConsole. When started it gave me error 402. Access Denied – the yellow screen of death for ASP.NET applications. Luckily it was very easy to fix – with a single option change in IIS Manager:

Just Windows Authentication should be enabled.



image Note: In order to install Operations Manager 2007 WebConsole and pass prerequisites check IIS 6 Management compatibility should be installed:

Hope this helps

What’s changed in Windows Server 2008 R2

TechNet has a list of changes that will be released in Windows Server 2008 R2:

  • What's New in Active Directory Certificate Services
  • What's New in Active Directory Domain Services
  • What's New in AppLocker
  • What's New in Biometrics
  • What's New in DNS
  • What's New in Failover Clusters
  • What's New in Group Policy
  • What's New in Hyper-V
  • What's New in Network Access Protection
  • What's New in Network Policy Server (NPS)
  • What's New in Networking
  • What's New in Remote Desktop Services
  • What's New in Server Manager
  • What's New in Service Accounts
  • What's New in Smart Cards
  • What's New in User Account Control
  • What's New in the Web Server (IIS) Role
  • What's New in Windows PowerShell
  • What's New in Windows PowerShell Cmdlets for Roles and Features
  • What's New in Windows Search, Browse, and Organization
  • What's New in Windows Security Auditing
  • Reboot PC from network

    Today I tried to to RDC(Remote Desktop Connection) to a remote computer (of course) and I got a nasty error basically saying that I need to restart the machine in order to connect to it :) So I searched the web for a bit, connected to another computer in same LAN, shot the command and waited for about 5 minutes and… voila. I was able to connect.

    So what is the command?! shutdown, of course :)

    shutdown -m //computername -r -f
    -s shutdown
    -r restart
    -f force close any applications
    //computername or ip

    Or just run
    shutdown /i
    and the UI on the right will appear to make you feel more

    For more information see Microsoft Knowledge Base Article: How To Use the Remote Shutdown Tool to Shut Down and Restart a Computer in Windows 2000.

    P.S. The target machine was Windows Server 2008 so this one still works :)


    x64bit Development with .NET

    Today the hardware is cheap (and getting cheaper) so it is easily affordable to have multiple quad code CPUs, 8 GB RAM and more. In order to fully utilize this hardware x64b OS is needed and Windows has x64b editions for a while.

    But what happens with the software we write?! if you use managed code only then is easy – IJW – It Just Works (do you remember that term for compiling unmanaged code C++ into IL? well that’s different)

    As MSDN article “Migrating 32-bit Managed Code to 64-bit” says

    Consider a .NET application that is 100% type safe code. In this scenario it is possible to take your .NET executable that you run on your 32-bit machine and move it to the 64-bit system and have it run successfully. Why does this work? Since the assembly is 100% type safe we know that there are no dependencies on native code or COM objects and that there is no 'unsafe' code which means that the application runs entirely under the control of the CLR. The CLR guarantees that while the binary code that is generated as the result of Just-in-time (JIT) compilation will be different between 32-bit and 64-bit, the code that executes will both be semantically the same. (You cannot install the .NET Framework version 2.0 on Windows 2000. Output files produced using .NET Framework versions 1.0 and 1.1 will run under WOW64 on a 64-bit operating system.)

    If you want to dig into x64 vs x86 differences read Scott Hanselman’s article “Back to Basics: 32-bit and 64-bit confusion around x86 and x64 and the .NET Framework and CLR

    Also check Brian Peek’s blog post on the subject