Skip to main content

February Orlando PASS Meeting

Jack Corbett (@unclebiguns) and Andy Warren(@sqlAndy) invited me to speak at this month’s Orlando PASS meeting. First, I want to thank them for the opportunity. I enjoyed it.

For the benefit of those who couldn’t make the trip to Tampa last month for SQL Saturday #32, I did my talk on “Database Hardening via PowerShell”.

I worked a half day and then headed to Orlando around 12:30 PM.  The plan was to speak and to visit my daughters at the University of Central Florida.
I visited with the youngest daughter prior to the meeting.  When I asked if she was available, she asked “Does this mean I get a free lunch?”.  Yes, we had a late lunch
After lunch, I headed over to  the meeting location around 4 PM hoping to beat the rush hour traffic. Boy, was I wrong.  The constant rain that day slowed I-4 Eastbound traffic to a crawl.  Plus, I was wondering who let all these people off work early???

I arrived at the meeting location at 5 PM, a full hour before the meeting started.
I’m glad because it took the full hour to get ready and sort out the LiveMeeting setup.  It was the first time I had done a LiveMeeting.
Even with the hour prep time, I forgot to do one thing to prep for my demos.  Did you catch it?
I forgot to import the SQLPSX 2.0 modules prior to starting the first demo.

I should have run the following in the PowerShell IDE prior to starting:
import-module ShowMbrs
import-module SQLServer
import module Agent
import-module Repl
import-module SSIS
import-module SQLParser
I was able to recover pretty quickly because I had a version of the script that didn’t use the SQLPSX modules.

My demos demonstrated:
- How to check the SQL Server version on 600 servers in less than 10 minutes. 
- How to check which Windows groups have access to your database servers.
- How to check for the correct Recovery Model on multiple servers.
- How to list the sysadmins and database owners on multiple servers.
- A script to report on issues raised by our internal Compliance and Audit departments.

If any of this is of interest to you, I’ve provided my deck and scripts to OPASS to share.

As I said, I enjoyed the meeting. Andy and Jack do a great job getting people involved and talking to each other.  The icebreakers were effective and the attendees were friendly and attentive.
As usual, I always learn something new when I speak.  On this occasion, it was attending LiveMeeting as a speaker.  I also appreciated the feedback afterwards of my talk via blogs, Twitter, and e-mail regarding my performance.

After the meeting, I visited my other daughter and made it home to Tampa around Midnight.
It was a fun day.


Post a Comment

Popular posts from this blog

Modifying Endpoint URLs on Availability Group Replicas

I recently had to modify the Endpoint URLs on our SQL Server Availability Group replicas.  The reason for this blog post is that I could not answer the following questions: Do I need to suspend data movement prior to making this change?  Would this change require a restart of the database instance? I spent enough time searching on my own to no avail that I tossed the question to the #sqlhelp hashtag on Twitter and Slack but didn't get an answer prior to executing the change request. After reading the relevant documentation, I think it's probably a good idea to suspend data movement for this change. The T-SQL is straightforward.  USE MASTER GO ALTER AVAILABILITY GROUP [AG1]  MODIFY REPLICA ON 'SQL2012-1' WITH (ENDPOINT_URL = 'TCP://'); ALTER AVAILABILITY GROUP [AG1]  MODIFY REPLICA ON 'SQL2012-2' WITH (ENDPOINT_URL = 'TCP://'); ALTER AVAILABILITY GROUP [AG2]  MODIFY REPLICA ON 'SQL2012-1

PASS Summit 2012 - Gone to the mountain and returned wiser I began my conference schedule by attending Allen White's pre-con "Automating SQL Server with PowerShell". Allen starts by telling everyone in attendance “We all can learn something from each other.  We all know something that someone else doesn't.” I thought this was a great intro and inspiration to the attendees to participate in the PASS Community. Later in the day while answering a question, Allen tells us he is not a PowerShell expert.  Which kind of surprises me.  He says he’s just figured out how to use PowerShell with SQL Server. I think he is being a bit too humble.   Afterwards, I talk to Allen about a script I’m working on and he points me in a direction that hopefully will help me finish it. All in all, it was e xcellent day of training on using PowerShell with SQL Server. As the main conference began, I tweeted about how tight the seating was in some of the rooms on the first day of the main conference.   After the Sum

PowerShell: Quick SQL Server Version Check

I have to keep track of our SQL Server version inventory.  The goal is to reduce the SQL Server 2000 population as fast as possible. The following PowerShell script will produce a csv file containing the database server name and the version of SQL Server it's running. 1: ## Get SQL Version installed on multiple servers ## 2: ## ./sqlver.ps1 3: $start = get-date 4: write-host "Start: " $start 5:   6: [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null 7:   8: $FilePath = "C:\Output" 9: $OutFile = Join-Path -path $FilePath -childPath ("SQLVersions_" + (get-date).toString('yyyyMMdd_hhmmtt') + ".log") 10:   11: # Version inventory 12: @(foreach ($svr in get-content "C:\Input\AllLOBServers.txt") 13: { 14: $s = New-Object "Microsoft.SqlServer.Management.Smo.Server" $svr 15: $s | select Name, Version 16:   17: }) | export-csv -noType $OutFile 18:   1