Happy New Year!


I hope you had a safe and happy holiday season.  To help ring in the new year I have published a new update to the SQL SPADE open source project found at http://sqlspade.codeplex.com.  This update furthers the SQL 2012 support added in the 1.1 release by now supporting installs of SQL 2012 on Windows Server Core.  I feel that this is one of the biggest areas of benefit for SPADE considering the steep learning curve that you face when you start working with Server Core.  You don’t realize just how much you rely on graphical tools and wizards until they’re gone.  Running SPADE turns installing SQL Server into running a single PowerShell function, no GUI needed.

Along with the support for Server Core, the following enhancements have been make to SPADE release 1.2:

  • Added QtWeb (Open Source) standalone browser for viewing the SQL SPADE log on Server Core – I still prefer this over writing the log to a plain text file that would have to be searched for errors
  • Changed the Set-SqlTcpPort logic to use the WMI method because the registry method was inconsistent when installing SQL 2012 on Server Core 
  • Fixed the exists check in the VerifyAdminGroup script to look for the fully qualified domain group
  • Fixed a logic error in the Execute-SqlCommand function that was masking exceptions when the SQL connection failed
  • Added support for excluding scripts by putting an “_” at the beginning of the file name – when a script is excluded the install will log that the script is being skipped because it has been marked as excluded
  • Changed the ConfigureDatabaseMail script to a PowerShell script that uses external configurations stored in the Run-Install.config file – this change was to enforce the pattern of all script variables being centralized in the configuration file and simplifies implementation for new environments 
  • Changed the order for the RemoveBuiltinAdminsLogin script – moved this script to the end of the process so it is not executed in the event of a critical failure
  • Changed the order for the Restart-SqlService script – moved this to the end of the process because the time needed to restart the service could cause failures in subsequent SQL scripts

I have also added script management functionality to the SqlSpadeHelper tool.  Watch here for an upcoming article that details how to use it to manage your scripts.

Would You Like to Save Some Time?

Creative Commons - http://www.flickr.com/photos/oter/3663113949/sizes/z/in/photostream/

Sure, we all would!

What if I told you that there was a new project on codeplex that could has saved hundreds of hours for my organization and could do the same for you?  Well, this weekend marks the first public release of the Scripted PowerShell Automated Deployment Engine (SPADE) for SQL Server and that is exactly what it’s designed to do. 


I believe that any repetitive task is a potential candidate for automation, and installing SQL Server is no different.  You may say “I already automate my installs using an unattended configuration file”, but that only addresses part of the problem.  What about those changes you have to make prior to the install?  Things like configuring Microsoft Distributed Transaction Coordinator (MSDTC), or changing the TCP Offload Chimney setting?  Then, once your install is complete, your job still isn’t done.  My shop, like most companies, has a list of things that need to be done after the install like setting up Database Mail, creating Operators, deploying standard Stored Procedures, and the list goes on.  What if there was a way to automate the entire process from beginning to end?  Well, now there is…


SPADE is a process that I have created that does exactly that.  The process is PowerShell based and completely customizable for any organization.  I built the system to be folder based, so adding new Pre Install or Post Install tasks is as easy as dropping a new script into a folder. 


The SPADE process is very simple and mimics the same process that you would follow if you were installing manually.  It processes a list of Pre Install tasks, creates the unattended install file for you, installs SQL Server, and then processes a list of Post Install tasks.  The difference is that SPADE leverages the awesomeness that is PowerShell to modify those configurations for you, so you don’t have to navigate through multiple different application interfaces to get it done.  Fewer clicks means that you can move on to something else faster.


You can download SPADE from http://sqlspade.codeplex.com


The initial beta release is available now, so what are you waiting for?

The Catch…

This system currently supports Standalone (Not clustered) installs of SQL Server 2005, 2008, and 2008R2.  I am currently working on support for “Denali” and will have that available once it has RTM’d.  Also, while I have tested the Database Engine components and Integration Services, I have not tested the install of Reporting Services or Analysis Services yet.  Any volunteers would be greatly appreciated.


This is beta software, and should be treated accordingly.  My team has used this software in my organization for many months and saved hundreds of hours in the process, but every environment is different.  Once I have received sufficient feedback and addressed any issues that have been identified I will remove the “Beta” designation.

Many months have gone into preparing this release and I hope that you find it as valuable for automating SQL Server installs as I have.