<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'powershell' and 'SQL Server 2008'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=powershell,SQL+Server+2008&amp;orTags=0</link><description>Search results matching tags 'powershell' and 'SQL Server 2008'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Change SQL Servers Authentication Mode with PowerShell</title><link>http://sqlblog.com/blogs/allen_white/archive/2011/05/19/change-sql-servers-authentication-mode-with-powershell.aspx</link><pubDate>Thu, 19 May 2011 20:22:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:35748</guid><dc:creator>AllenMWhite</dc:creator><description>&lt;p&gt;Lately I've been working on scripts to check and set security and configuration settings for SQL Server using PowerShell.  One of the settings that I normally set and forget at install time is the Authentication Mode setting.  Best practices suggest that you set this to Windows Authentication, but my experience has been that it's always better to set it to Mixed mode, and set a very strong password for the sa account.&lt;/p&gt;
&lt;p&gt;So, what if we want to change it after the fact? Well, it's a registry setting. Management Studio allows you to make that change via the Security page in Server Properties, but I prefer scripting when setting configuration settings.  The setting is exposed in SMO (Server Management Objects), however, and we can check the setting using PowerShell.  (I'm going to assume you're either running SQLPS.exe or you've already loaded the SMO libraries.  If you don't know what I'm talking about, check &lt;a href="http://sqlblog.com/blogs/allen_white/archive/2008/01/09/create-agent-jobs-to-run-powershell-scripts.aspx"&gt;here&lt;/a&gt;.)&lt;/p&gt;
&lt;pre&gt;# Connect to the instance using SMO&lt;br&gt;$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') 'MyServer\MyInstance'&lt;br&gt;[string]$nm = $s.Name&lt;br&gt;[string]$mode = $s.Settings.LoginMode&lt;br&gt;&lt;br&gt;write-output "Instance Name: $nm"&lt;br&gt;write-output "Login Mode: $mode"&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;What the script returns is the instance name, and the authentication mode it's using.  The property in SMO is called LoginMode, and can have one of four values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Integrated - Windows Authentication&lt;/li&gt;
&lt;li&gt;Mixed - Mixed Mode&lt;/li&gt;
&lt;li&gt;Normal - SQL Server Only Authentication&lt;/li&gt;
&lt;li&gt;Unknown - Undefined (and no, I haven't tried it.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I sometimes encounter a system that was set to Integrated, and I want to change it to Mixed mode, because I like to have that safety net of sa if something goes wrong.  Here's how I do that:&lt;/p&gt;
&lt;pre&gt;#Change to Mixed Mode&lt;br&gt;$s.Settings.LoginMode = [Microsoft.SqlServer.Management.SMO.ServerLoginMode]::Mixed&lt;br&gt;&lt;br&gt;# Make the changes&lt;br&gt;$srv.Alter()&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;Once that's done the server does need to be restarted, and I need to go in and set the sa password to something VERY strong right away.  But now the server is set to the authentication mode I prefer, and it's a lot easier (in my mind) than going into the registry to do it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;</description></item><item><title>Speaking at SQL Saturday 61 in Washington DC</title><link>http://sqlblog.com/blogs/allen_white/archive/2010/12/02/speaking-at-sql-saturday-61-in-washington-dc.aspx</link><pubDate>Thu, 02 Dec 2010 14:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:31321</guid><dc:creator>AllenMWhite</dc:creator><description>&lt;p&gt;The organizers of &lt;a href="http://www.sqlsaturday.com/61/eventhome.aspx"&gt;SQL Saturday #61&lt;/a&gt; in DC (actually Reston, VA) created an Advanced DBA/Dev track for their event, which I think is cool.  Both of the presentations I'll be doing there on Saturday are in that track.  (In fact, they're the first two sessions of the day.)&lt;/p&gt;
&lt;p&gt;The first, &lt;b&gt;Automate Policy-Based Management using PowerShell&lt;/b&gt; will walk through the basics of Policy-Based Management, and then show you how to build PowerShell scripts to create and evaluate your policies.&lt;/p&gt;
&lt;p&gt;The second, &lt;b&gt;Gather SQL Server Performance Data with PowerShell&lt;/b&gt; will go explain the basics of performance metrics, define a set of counters which make up a baseline, walk you through the PowerShell script which gathers those counters, and then I'll show you how to create a report to report on the performance, and show you how to view that report from within Management Studio.&lt;/p&gt;
&lt;p&gt;I look forward to seeing you there.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;</description></item><item><title>Working with the SQL Server Powershell Provider and Central Management Servers from Powershell</title><link>http://sqlblog.com/blogs/jonathan_kehayias/archive/2010/10/08/working-with-the-sql-server-powershell-provider-and-central-management-servers-from-powershell.aspx</link><pubDate>Sat, 09 Oct 2010 03:45:40 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:29253</guid><dc:creator>jmkehayias</dc:creator><description>&lt;p&gt;I am a big fan of the Central Management Server setup that exists in SQL Server 2008, as well as how you can leverage this for the &lt;a href="http://epmframework.codeplex.com/" target="_blank"&gt;Enterprise Policy Management Framework&lt;/a&gt; that Laura Rubbelke (&lt;a href="http://sqlblog.com/blogs/lara_rubbelke" target="_blank"&gt;Blog&lt;/a&gt;|&lt;a href="http://twitter.com/sqlgal" target="_blank"&gt;Twitter&lt;/a&gt;) created on Codeplex.&amp;#160; Today one of my DBA’s asked a question about how to leverage the list of servers in the CMS through PowerShell and I had to double back on my own code because in PowerGUI the SQL Server Powershell provider is not natively registered so I had to write some additional code to check whether or not the PowerShell Provider had actually been loaded or not before running code to return a list of the registered servers from the CMS.&amp;#160; The following code will validate whether or not the PowerShell provider for SQL has been loaded as a PS-Drive or not and load it if it is not loaded, then return a list of the registered servers from the CMS.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;# Load the Snapins for SqlServer if they aren't currently loaded     &lt;br /&gt;if((Get-PSSnapin -Name SqlServerCmdletSnapin100 -ErrorAction SilentlyContinue) -eq $null)&amp;#160; &lt;br /&gt;{&amp;#160;&amp;#160;&amp;#160; Add-PSSnapin SqlServerCmdletSnapin100&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;if((Get-PSSnapin -Name SqlServerProviderSnapin100 -ErrorAction SilentlyContinue) -eq $null)&amp;#160; &lt;br /&gt;{&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Add-PSSnapin SqlServerProviderSnapin100&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;$CMSPath = 'SQLSERVER:\SQLRegistration\Central Management Server Group'     &lt;br /&gt;foreach ($RegisteredServer in (dir $CMSPath -recurse&amp;#160; | where-object { $_.Mode -eq &amp;quot;-&amp;quot; }))      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $RegisteredServer.Name      &lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;</description></item><item><title>Discover Facets and Properties in PowerShell</title><link>http://sqlblog.com/blogs/allen_white/archive/2010/09/27/discover-facets-and-properties-in-powershell.aspx</link><pubDate>Mon, 27 Sep 2010 14:56:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:29002</guid><dc:creator>AllenMWhite</dc:creator><description>&lt;p&gt;When you're trying to set up scripts to deploy policies to your servers (because you ALWAYS automate with PowerShell, right?), it can be sometimes difficult to determine exactly what facets are there, and when you do know the facet name, what properties are available to you.&lt;/p&gt;
&lt;p&gt;First, in a native PowerShell window you'll need to load the assemblies with the Policy-Based Management objects.  Because PBM was originally called Dynamic Management Framework, the DLL carries the original name, so the following two lines will load the correct assemblies:&lt;/p&gt;
&lt;pre&gt;[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Dmf')
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SQLServer.Management.Sdk.Sfc')
&lt;/pre&gt;
&lt;p&gt;The next thing to do is to connect to our SQL Server instance, and load the instance's PolicyStore object, which is where the existing policies are kept.&lt;/p&gt;
&lt;pre&gt;$conn = New-Object Microsoft.SQlServer.Management.Sdk.Sfc.SqlStoreConnection("server=SQLTBWS\INST01;Trusted_Connection=true");
$PolicyStore = New-Object Microsoft.SqlServer.Management.DMF.PolicyStore($conn);
&lt;/pre&gt;
&lt;p&gt;Now we can start exploring.  We can pull the list of facets by referencing them within the PolicyStore object, and then store them in a variable called $facets.  We can then pipe that variable into a select-object cmdlet and get the name and description of the available facets:&lt;/p&gt;
&lt;pre&gt;$facets = [Microsoft.SqlServer.Management.Dmf.PolicyStore]::Facets
$facets | select Name, Description
&lt;/pre&gt;
&lt;p&gt;Now we know what facets are available.  Let's say we want to set up some database maintenance policies.  We can figure out what properties are available to us by creating a facet object variable for the 'IDatabaseMaintenanceFacet' facet.  Then we grab the properties list from it by setting a variable to the facet's FacetProperties object.  Finally we can pipe the property list through the select-object cmdlet to see the name and property type of each property for the facet:&lt;/p&gt;
&lt;pre&gt;$f = $facets['IDatabaseMaintenanceFacet']
$fp = $f.FacetProperties
$fp | select Name, PropertyType
&lt;/pre&gt;
&lt;p&gt;Once we have this information we can use it to build conditions, and from those conditions, the policies we want to establish on our servers.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;</description></item><item><title>SQL Server 2008 R2 Best Practices Analyzer</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2010/08/25/sql-server-2008-r2-best-practices-analyzer.aspx</link><pubDate>Wed, 25 Aug 2010 21:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:28276</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;Maybe I'm a little late to the party, but I thought I would share with you the most recent release of Microsoft's Best Practices Analyzer for SQL Server 2008 R2 (you can also read &lt;a href="http://blogs.msdn.com/b/psssql/archive/2010/06/20/introducing-the-sql-server-2008-r2-best-practices-analyzer-bpa.aspx" title="http://blogs.msdn.com/b/psssql/archive/2010/06/20/introducing-the-sql-server-2008-r2-best-practices-analyzer-bpa.aspx" target="_blank"&gt;the original blog announcement from CSS&lt;/a&gt;). Let me be clear: this tool is not just for people who are already on SQL Server 2008 R2.&amp;nbsp; It will also happily analyze your SQL Server 2008 instances, so don't be fooled by the label.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;That said, getting the thing installed was an exercise in patience.&amp;nbsp; Like most people, I clicked the download link:&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=0fd439d7-4bff-4df7-a52f-9a1be8725591" target="_blank" title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=0fd439d7-4bff-4df7-a52f-9a1be8725591"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=0fd439d7-4bff-4df7-a52f-9a1be8725591&lt;/a&gt;&lt;/blockquote&gt;


&lt;p&gt;And I was off to the races.&amp;nbsp; Or so I thought.&amp;nbsp; I still haven't developed a healthy habit of READING before CLICKING.&amp;nbsp; The first time I ran the installer, I got this complaint about not having the Baseline Configuration Analyzer installed (I'm typing out the error message so that users experiencing the same thing can find this post, and I'm showing a screen shot to show how asinine it is to put a URL in a dialog but not have the ability to click or copy it): &lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;Microsoft Baseline Configuration Analyzer 2.0 is not installed. Please install it from http://www.microsoft.com/downloads/details.aspx?FamilyID=1b6e9026-f505-403e-84c3-a5dea704ec67&lt;br&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;&lt;img src="http://sqlblog.com/files/folders/28271/download.aspx" width="499" border="0" height="388"&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt; To help out a bit, here is the link to download the Configuration Analyzer (which, I will admit, was much easier to obtain from a Google search than by transcribing the link from the dialog) :&lt;/p&gt;

&lt;p style="margin-left:40px;"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=1B6E9026-F505-403E-84C3-A5DEA704EC67" title="http://www.microsoft.com/downloads/details.aspx?FamilyID=1B6E9026-F505-403E-84C3-A5DEA704EC67" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=1B6E9026-F505-403E-84C3-A5DEA704EC67&lt;/a&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;If you're not on Windows 7 or Windows Server 2008 R2, you have the potential to receive error messages about missing PowerShell 2.0, as follows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;Microsoft Baseline Configuration Analyzer 2.0 requires PowerShell 2.0 to be pre-installed on the system.&lt;br&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;&lt;img src="http://sqlblog.com/files/folders/28571/download.aspx"&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No worries, you can download PowerShell 2.0 as part of Windows Update:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://sqlblog.com/files/folders/28570/download.aspx" width="801" height="90"&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or if you don't want to go through the hassle of Windows Update, you can also get it by installing the Windows Management Framework Core Package individually:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/?kbid=968930" title="http://support.microsoft.com/?kbid=968930" target="_blank"&gt;http://support.microsoft.com/?kbid=968930&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;(Now why, since PowerShell 2.0 is only a 6 MB download, it couldn't be published as part of the Configuration Analyzer setup, or at least to go fetch it dynamically during installation, I have no idea.) &lt;br&gt;&lt;/p&gt;
&lt;p&gt;I got a little bit further into the installation once I had the Configuration Analyzer installed.&amp;nbsp; But then, I discovered in a very round-about way, that there is an issue with the installer when you try to put the BPA on a machine that is not connected to a domain (e.g. just about every virtual machine I own).&amp;nbsp; When it tried to run the PowerShell commands during setup, I saw a PS window briefly, along with some scary-looking red text, and then it disappeared and setup returned this error message (again typed out for SEO goodness):&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.&lt;br&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;&lt;img src="http://sqlblog.com/files/folders/28272/download.aspx" width="498" border="0" height="387"&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Which is great to know that it wasn't BPA's fault, but something else's.&amp;nbsp; But would it have been that hard to consume the error message that obviously came back from PowerShell?&amp;nbsp; Or better yet, return an error message like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;Google "BPA 2.0 error powershell"&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because as it turns out, there is a very easy fix to this, and it was the first hit for the search above.&amp;nbsp; If you want to install BPA onto a machine that is not domain-savvy, instead of double-clicking the MSI file, run this command line (replacing &amp;lt;path&amp;gt; with the folder where the MSI file is located, and changing &amp;lt;platform&amp;gt; either to 32 or 64):&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;msiexec /i &amp;lt;path&amp;gt;\SQL2008R2BPA_Setup&amp;lt;platform&amp;gt;.msi SKIPCA=1&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;(Thanks to Adam Saxton for &lt;a href="http://blogs.msdn.com/b/psssql/archive/2010/06/21/known-issues-installing-sql-2008-r2-bpa-relating-to-remoting.aspx" title="http://blogs.msdn.com/b/psssql/archive/2010/06/21/known-issues-installing-sql-2008-r2-bpa-relating-to-remoting.aspx" target="_blank"&gt;pointing this out on the CSS SQL blog&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;Once I got the BPA running, it did quickly point out several issues I was aware of (including bad partition alignment on a non-essential drive, some databases that were intentionally offline, and the fact that the error logs have a lot of history), as well as a couple of new issues:&lt;/p&gt;

&lt;p style="margin-left:40px;"&gt;&lt;img src="http://sqlblog.com/files/folders/28274/download.aspx" width="634" border="0" height="1103"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;The one I've expanded is one that Bob Ward talked about in a blog post yesterday as one of the key reasons to use the new BPA:&lt;/p&gt;
&lt;div style="margin-left:40px;"&gt;&lt;a href="http://blogs.msdn.com/b/psssql/archive/2010/08/24/why-use-sql-server-2008-r2-bpa-case-1-missing-updates.aspx" title="http://blogs.msdn.com/b/psssql/archive/2010/08/24/why-use-sql-server-2008-r2-bpa-case-1-missing-updates.aspx" target="_blank"&gt;http://blogs.msdn.com/b/psssql/archive/2010/08/24/why-use-sql-server-2008-r2-bpa-case-1-missing-updates.aspx&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Obviously it finds a bunch of things that you may already have alerting for, and probably some things that you don't.&amp;nbsp; In any case, this can be a very quick way to assess a SQL Server instance without having to rummage around for all of this information manually, and even with the stumbling you may have getting it configured, it should pay off rather quickly.&amp;nbsp; There are plenty of things it doesn't look for, and you can get that information from other places as well - for example, check out the BLITZ! takeover script from Brent Ozar (&lt;a href="http://www.brentozar.com/" title="http://www.brentozar.com/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/BrentOzar" title="http://twitter.com/BrentOzar" target="_blank"&gt;twitter&lt;/a&gt;): &lt;/p&gt;

&lt;p style="margin-left:40px;"&gt;&lt;a href="http://www.brentozar.com/sql/blitz-minute-sql-server-takeovers/" title="http://www.brentozar.com/sql/blitz-minute-sql-server-takeovers/" target="_blank"&gt;http://www.brentozar.com/sql/blitz-minute-sql-server-takeovers/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;Anyway, I haven't really offered any input that you can't see elsewhere, but I hope it is useful nonetheless.&lt;/p&gt;
&lt;p&gt;EDIT: If you are running on Windows Server 2003 &lt;br&gt;&lt;/p&gt;</description></item><item><title>PASS PowerShell/SQL Server PreCon</title><link>http://sqlblog.com/blogs/allen_white/archive/2010/08/19/pass-powershell-sql-server-precon.aspx</link><pubDate>Thu, 19 Aug 2010 19:17:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:28067</guid><dc:creator>AllenMWhite</dc:creator><description>&lt;p&gt;PowerShell is an amazing tool to help you automate your administrative processes.  There are a lot of books and online sources to help you learn PowerShell, but how do you learn how to use it with SQL Server?  Simple, just sign up for my PASS PreCon session.  Here's the outline:&lt;/p&gt;
&lt;p&gt;&lt;a&gt;Use PowerShell to Get the Most out of SQL Server&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Module 1: Introduction to PowerShell&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;Cmdlets&lt;/li&gt;
	&lt;li&gt;Aliases&lt;/li&gt;
	&lt;li&gt;The Pipeline&lt;/li&gt;
	&lt;li&gt;Variables&lt;/li&gt;
	&lt;li&gt;Objects&lt;/li&gt;
	&lt;li&gt;Control Flow&lt;/li&gt;
	&lt;li&gt;Functions&lt;/li&gt;
	&lt;li&gt;Modules&lt;/li&gt;
	&lt;li&gt;Error Handling&lt;/li&gt;
	&lt;li&gt;Command-line Arguments&lt;/li&gt;
	&lt;/ul&gt;
&lt;li&gt;Module 2: Introduction to SMO&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;Introduction to the SMO Library&lt;/li&gt;
	&lt;li&gt;SQLPS.exe - The SQL Server Mini-Shell&lt;/li&gt;
	&lt;li&gt;The SMO Object Model&lt;/li&gt;
	&lt;/ul&gt;
&lt;li&gt;Module 3: Backup and Recovery&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;Backup&lt;/li&gt;
	&lt;li&gt;Restore&lt;/li&gt;
	&lt;/ul&gt;
&lt;li&gt;Module 4: Automating &amp;amp; Maintaining Databases&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;Automating Index Maintenance&lt;/li&gt;
	&lt;li&gt;Automating DBCC&lt;/li&gt;
	&lt;/ul&gt;
&lt;li&gt;Module 5: Importing, Exporting and Transforming Data&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;ADO.NET&lt;/li&gt;
	&lt;li&gt;Invoke-SQLCMD&lt;/li&gt;
	&lt;li&gt;Importing and Exporting using CSV Files&lt;/li&gt;
	&lt;li&gt;Importing and Exporting using XML Files&lt;/li&gt;
	&lt;/ul&gt;
&lt;li&gt;Module 6: Manipulating Database Objects&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;Creating and Deleting Schemas&lt;/li&gt;
	&lt;li&gt;Creating, Modifying and Deleting Tables&lt;/li&gt;
	&lt;li&gt;Creating, Modifying and Deleting Triggers&lt;/li&gt;
	&lt;li&gt;Creating, Modifying and Deleting Indexes&lt;/li&gt;
	&lt;li&gt;Creating, Modifying and Deleting Views&lt;/li&gt;
	&lt;/ul&gt;
&lt;li&gt;Module 7: Managing the Enterprise&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;Registering Servers&lt;/li&gt;
	&lt;li&gt;Creating a Central Management Server&lt;/li&gt;
	&lt;li&gt;Connecting to a Central Management Server&lt;/li&gt;
	&lt;li&gt;Running Scripts Against Multiple Servers&lt;/li&gt;
	&lt;li&gt;Defining Policies for Policy-Based Management&lt;/li&gt;
	&lt;li&gt;Evaluating Policies for Policy-Based Management&lt;/li&gt;
	&lt;/ul&gt;
&lt;li&gt;Module 8: Profiling and Monitoring SQL Server&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;Gathering WMI Information&lt;/li&gt;
	&lt;li&gt;Gathering Performance Counters&lt;/li&gt;
	&lt;li&gt;Setting up a Server Side Trace&lt;/li&gt;
	&lt;li&gt;Monitor Log Growth&lt;/li&gt;
	&lt;/ul&gt;
&lt;li&gt;Module 9: Configuring and Tuning SQL Server&lt;/li&gt;
	&lt;ul&gt;
	&lt;li&gt;Setting Configuration Options&lt;/li&gt;
	&lt;li&gt;Setting Windows Mode or Mixed Mode&lt;/li&gt;
	&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;As you can see, we're going to spend the first part of the day learning the basics of PowerShell, but the focus is on how you can manage your own environment using this powerful language, so you can spend your time solving problems instead of the constant point-and-click drudgery of typical DBA tasks.&lt;/p&gt;
&lt;p&gt;The all-day session is reasonably priced, and you'll come away with scripts to help you put this tool into use right away.  Check out the session details at &lt;a href="http://sqlpass.eventpoint.com/topic/details/DBA232P" title="SQLPass.org" target="_blank"&gt;Use PowerShell to Get the Most out of SQL Server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See you there!&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;</description></item><item><title>Speaking at SQL Saturday Nashville</title><link>http://sqlblog.com/blogs/allen_white/archive/2010/08/18/speaking-at-sql-saturday-nashville.aspx</link><pubDate>Wed, 18 Aug 2010 13:05:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:27982</guid><dc:creator>AllenMWhite</dc:creator><description>&lt;p&gt;&lt;b&gt;&lt;a&gt;SQL Saturday&lt;/a&gt;&lt;/b&gt; - Nashville, TN, August 21, 2010&lt;/p&gt;
&lt;p&gt;I'll be presenting two sessions this Saturday (August 21, 2010) in Nashville, TN - &lt;b&gt;XQuery Basics&lt;/b&gt; and &lt;b&gt;Gather SQL Server Performance Data with PowerShell&lt;/b&gt;.  The event takes place at Nashville State Community College (120 White Bridge Road, Nashville, Tennessee, 37209).  In the XQuery session I'll give an introduction to XQuery and show how easy it is to examine XML data in SQL Server, and will show how to extract data from devices like GPS receivers.  In the Performance session I'll show how to build a PowerShell script to collect performance data for your SQL Server systems and build reports to monitor those servers.  For more information please visit &lt;a href="http://www.sqlsaturday.com/51/eventhome.aspx"&gt;SQLSaturday.com&lt;/a&gt; or email us at sqlsaturday#51@sqlsaturday.com.
&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;</description></item><item><title>TechEd 2010 Followup</title><link>http://sqlblog.com/blogs/allen_white/archive/2010/06/13/teched-2010-followup.aspx</link><pubDate>Sun, 13 Jun 2010 18:25:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:26177</guid><dc:creator>AllenMWhite</dc:creator><description>&lt;p&gt;Last week I presented a couple of sessions at Tech Ed NA in New Orleans.  It was a great experience, even though my demos didn't always work out as planned.  Here are the sessions I presented:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;DAT01-INT Administrative Demo-Fest for SQL Server 2008&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;SQL Server 2008 provides a wealth of features aimed at the DBA.  In this demofest of features we'll see ways to make administering SQL Server easier and faster such as Centralized Data Management, Performance Data Warehouse, Resource Governor, Backup Compression and more.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;DAT306 Gather SQL Server Performance Data with PowerShell&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We all know how important it is to keep a baseline of performance metrics that allow us to know when something is wrong and help us to track it down and fix the problem.  We don't always know how to do this easily and consistently.  This session will walk you through a series of PowerShell scripts you can schedule which will capture the most important data and a set of reports to show you how to use that data to keep your server running smoothly.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I've attached the scripts I used for the demos.  Please feel free to use these, and enhance them with your own needs, but please attribute this work to me if you publish your enhancements.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;</description></item><item><title>SQL Server PowerShell Provider And PowerShell Version 2 Get-Command Issue</title><link>http://sqlblog.com/blogs/buck_woody/archive/2010/05/10/sql-server-powershell-provider-and-powershell-version-2-get-command-issue.aspx</link><pubDate>Mon, 10 May 2010 13:13:30 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:24982</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;The other day I blogged that the version of the SQL Server PowerShell provider (sqlps) follows the version of PowerShell. That’s all goodness, but it has appeared to cause an issue for PowerShell 2.0. the Get-Command PowerShell command-let returns an error (&lt;em&gt;Object reference not set to an instance of an object&lt;/em&gt;) if you are using PowerShell 2.0 and sqlps – it’s a known bug, and I’m happy to report that it is fixed in SP2 for SQL Server 2008 – something that will released soon.&lt;/p&gt;  &lt;p&gt;You can read more about this issue here: &lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/484732/sqlps-and-powershell-v2-issues"&gt;http://connect.microsoft.com/SQLServer/feedback/details/484732/sqlps-and-powershell-v2-issues&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Speaking at SQLSaturday #33 in Charlotte</title><link>http://sqlblog.com/blogs/allen_white/archive/2010/03/04/speaking-at-sqlsaturday-33-in-charlotte.aspx</link><pubDate>Thu, 04 Mar 2010 15:33:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:22827</guid><dc:creator>AllenMWhite</dc:creator><description>&lt;p&gt;I'll be presenting two sessions this Saturday (March 6, 2010) in Charlotte - &lt;b&gt;Automate SQL Server Administration with PowerShell&lt;/b&gt; and &lt;b&gt;Gather SQL Server Performance Data with PowerShell&lt;/b&gt;.  The event takes place at the Microsoft Charlotte Offices on 8050 Microsoft Way, Charlotte, NC 28273.  For more information please visit &lt;a href="http://www.sqlsaturday.com/"&gt;SQLSaturday.com&lt;/a&gt; or email us at sqlsaturday#33@sqlsaturday.com.
&lt;/p&gt;
&lt;p&gt;I hope to see you there.&lt;/p&gt;
&lt;p&gt;Allen&lt;/p&gt;</description></item></channel></rss>