Deploying SQL 2008 Express with Advanced Services SP1 on Windows Server 2008 R2


I can’t seem install MS SQL Server 2008 Express with Advanced Services natively on a Windows Server 2008 R2. Why use it? Primary its free like the SQL Express and it has advanced features like of the full SQL Server 2008 as described here:

Cant install, mainly because as of this moment I have not found a downloadable copy of the MS SQL 2008 Express with Advanced Services SP1 from the Microsoft Download site. To install SQL 2008 on Windows Server 2008 R2, it must be already on SP1. I think that the only way I can install this is to do a slipstreamed copy.

Slipstream is a way of infusing the installer and its update so that the installer may already have the update in it upon install. This is very handy for mass deployment and for situations like this where it is required to have an SP1 copy to install.

So here is how I did it:

1. Download the installers:

SQL 2008 Express with Advanced Services installer from here:

SQL Server 2008 Service Pack 1 (SP1) update from here :

2. Merge the installers.

First you must extract the files from the SQL Express installer with the “/x” switch. In my case I put it on the root of my C:\. So to do this open your CMD prompt and type in without quotes: “en_sql_server_2008_express_with_advanced_services_x64.exe /x:c:\SQLServer2008_FullSP1”. Hit enter.

So the syntax goes <INSTALLER> /x:<PATH-TO-EXTRACT-TO>

That command extracts the installer files to the c:\SQLServer2008_FullSP1 directory.

After extraction, a message box will appear prompting us that the extract is now complete.


Now we extract the update and put it in the PCU directory of c:\SQLServer2008_FullSP1

Same syntax, so opening CMD and typing in: SQLServer2008SP1-KB968369-x64-ENU.exe /x:c:\SQLServer2008_FullSP1\PCU. Hit enter.

It is the same thing for the updates, a prompt will appear after extraction.


Then we must copy the setup.exe and setup.rll from the child PCU directory to the root c:\SQLServer2008_FullSP1 directory. We can use robocopy for this:

so with the command prompt still open:

“robocopy c:\SQLServer2008_FullSP1\PCU c:\SQLServer2008_FullSP1 Setup.exe”

“robocopy c:\SQLServer2008_FullSP1\PCU c:\SQLServer2008_FullSP1 Setup.rll”

Then we must copy everything from c:\SQLServer2008_FullSP1\PCU\x64 directory to c:\SQLServer2008_FullSP1\x64 except the Microsoft.SQL.Chainer.PacakgeData.dll. To do that, simply use robocopy with this command:

“robocopy c:\SQLServer2008_FullSP1\PCU\x64 c:\SQLServer2008_FullSP1\x64 /XF Microsoft.SQL.Chainer.PacakgeData.dll”

Please see the results if it looks like this: Note that we skipped one and copied 71 files.

We have to create now the DefaultSetup.ini file in the c:\SQLServer2008_FullSP1\x64 directory.

To do this open up your favorite text editor, mine is notepad then save it as DefaultSetup.ini. Make sure that you choose all files before saving to create the .ini extension and not have a .ini.txt file.

The DefaultSetup.ini file must contain the ff:



3. Run Setup

After the last step above, run the setup.exe in the c:\SQLServer2008_FullSP1 like nothing happend 😀

There ya go, the setup is now running without that prompt that you need to be updated ….

4. Checking

Check if you are really installing 2008 Express with Advanced Services:

After running the install process you may find that you also passed the  Update setup media language compatibility

After the setup is complete you may review the summary log of the installation by clicking the link highlighted in yellow as seen here:


Scroll down to the text file in notepad and look for the PCUSOURCE entry under User Input Settings.

The value must be our PCU directory under c:\SQLServer2008_FullSP1\. This verifies that our installer is already at SP1


There you have it, a slipstreamed install of SQL 2008 with Advanced Services SP1 ready for deployment.

RECAP: Here is the short story of the list of things and commands that we did:


Download the FF and copy to C:\ directory for easy access.

SQL 2008 Express with Advanced Services

SQL Server 2008 Service Pack 1 (SP1) :

Extract and merge the Installer with SP1 (with command prompt)

en_sql_server_2008_express_with_advanced_services_x64.exe /x:c:\SQLServer2008_FullSP1

SQLServer2008SP1-KB968369-x64-ENU.exe /x:c:\SQLServer2008_FullSP1\PCU

“robocopy c:\SQLServer2008_FullSP1\PCU c:\SQLServer2008_FullSP1 Setup.exe”

“robocopy c:\SQLServer2008_FullSP1\PCU c:\SQLServer2008_FullSP1 Setup.rll”

“robocopy c:\SQLServer2008_FullSP1\PCU\x64 c:\SQLServer2008_FullSP1\x64 /XF Microsoft.SQL.Chainer.PacakgeData.dll”

Create DefaultSetup.ini file at c:\SQLServer2008_FullSP1\x64.

; SQLSERVER2008 Configuration File




Run Setup.exe from C:\SQLServer2008_FullSP1\

That’s it!

Windows Server 2008 R2 RTM Installation Screenshots

I was installing 7 over this week, rebuilding my Labs on Hyper-V. Since its not customer material I figured I’d share my screenshots on how to install Windows Server 2008 R2 and Windows 7 RTM. Cheers!

Backing up Windows Server 2008 DNS Zone Files

This will be quick and sweet. Last night someone asked me to turn re-use an old server from having a catalog installed to just hosting primary DNS zones. So before I make this Active directory integrated DNS server to just a primary or do anything worthwhile I wanted to backup the zones. Well how?

First stop the DNS service by doing this command at the cmd prompt “net stop "DNS Server"

Next, just create a separate copy of the “%WinDir%\System32\dns” in my case C:\Windows\System32\dns directory that contains flat files (text files) of your zones. There are also some samples inside this directory, not required to be included.

Lastly is start the DNS service again by doing “net start "DNS Server"

To restore it just stop the DNS service, copy your backup back to the above directory then start the DNS service again and the zones are restored 😀

I found my first hint on how to do this here:

Well, that’s it! Back to my deadlines, cheers!

PowerShell Management Library for Hyper-V at codeplex

PowerShell management Library for Hyper-V
A project to provide a PowerShell management library for Hyper-V
It does pretty much what it says. Note that a lot of the information available from Hyper-V is only available if Powershell is running with Elevated privilege
At present there are 80 functions in the library, some of these are worker functions which are not expected to be called directly, the others are listed below.

NOTE: The version of PSHyper-V available in the Source Code section is under active developement and is not guaranteed to be stable. If you require a stable release, use 1.00b from the Downloads section.


Finding a VM
Get-VM, Choose-VM , Get-VMHost

Connecting to a VM


Discovering and manipulating Machine states
Get-VMState , Set-VMState , Convert-VmState,
Ping-VM , Test-VMHeartBeat, Shutdown-VM , Start-VM, Stop-VM, Suspend-VM
Get-VMKVP, Add-KVP, Remove-KVP, Get-VMJPEG

Backing up, exporting and snapshotting VMs
Export-VM , Import-VM, Get-VMSnapshot, Choose-VMSnapshot , Apply-VMSnapshot , New-VMSnapshot ,Remove-VMSnapshot, Rename-VMSnapShot, Update-VMSnapshot, Get-VMSnapshotTree, Get-VmBackupScript

 Adding and removing VMs, configuring motherboard settings.
New-VM , Remove-VM , Set-VM , Get-VMCPUCount, Set-VMCPUCount, Get-VMMemory, Set-VMMemory, Set-VMSerialPort

Manipulating Disk controllers, drives and disk images
Add-VMSCSIController , Remove-VMSCSIcontroller
Get-VMDriveByController , Add-VMDRIVE , Remove-VMdrive
Get-VMDiskByDrive, Add-VMDISK , Set-VMDisk, Get-VMDisk
Get-VMFloppyDisk , Add-VMFloppyDisk

Manipluating Network Interface Cards
Get-VMNic , List-VMNic , Choose-VMNIC, Add-VMNIC, Remove-VMNIC , Set-VMNICAddress , Set-VMNICConnection , Get-VMNicport ,
Get-VMnicSwitch, Choose-VMSwitch, New-VMSwitchPort, Get-VMByMACaddress, Choose-VMExternalEthernet,
New-VMExternalSwitch, New-VMInternalSwitch,New-VmPrivateSwitch

Working with VHD files
Get-VHDDefaultPath, Get-VHDInfo, New-VHD, Compact-VHD, Test-VHD,Convert-VHD,Merge-VHD,Mount-VHD, Unmount-VHD

Download it here:

Security Audit Events for Windows 7 and Windows Server 2008 R2 (Excel Download)

I was helping a friend over some events of their company’s Windows Servers, upon searching the event ID’s we saw this from Keith Combs blog:

Its a list of events for Windows Server 2008 R2 on an .xls file:

It has the Categories, event ID and the minimum OS where it will appear.

Cannot connect to a virtual machine on Windows Server 2008 Hyper-v if the VMMS certificate has expired

If you have a problem connecting to a Hyper-V VM with error: Cannot connect to the virtual machine because the authentication certificate is expired or invalid or when you try to start a VM and an error that YourVMNAme failed to initialize with an Unspecified Error “0x80004005”. This is because the Hyper-V Management Service certificate has expired.

This is very fixable by just applying an update: KB967902 for Windows Server 2008 x64 Edition. So if you have your WSUS administration or its a standalone server, better apply this hotfix to prevent what happened to me or to fix this issue.

More info is available where I found the fix here: or download the hotfix directly here: