I am beyond honored that the community and the PowerShell team felt my work deserved to be acknowledged among the other highly decorated community contributors. And there’s something extra magical about being acknowledged not just by the PowerShell Team, but also by my peers. It ranks in the top achievements of my life.
I keep my PowerShell Community award right next to my MVP award, and I smile every time I hold it. Thanks to all involved for the huge honor 💞.
Today’s blog post is part of T-SQL Tuesday. T-SQL Tuesday is the brainchild of Adam Machanic. It is a monthly blog party on the second Tuesday of each month. Everyone is welcome to participate.
This month’s T-SQL Tuesday, hosted by my buddy and YouTube star Bert Wagner (blog | twitter), is all about the SQL Server tools I use and love. This post is about PowerShell, of course.
dbatools is such a fun toolset to work on, but specifically, I can no longer live without Start-DbaMigration. Even in smaller shops, migrations are often required and they are always a lot of work.
At least they used to be, before I built the command that started it all: Start-DbaMigration. Start-DbaMigration is an instance to instance migration command that migrates just about everything. It’s really a wrapper that simplifies nearly 30 other copy commands, including Copy-DbaDatabase, Copy-DbaLogin, and Copy-DbaSqlServerAgent.
Here is what it looks like in action:
So simple. To migrate an entire instance, all I had to do was execute the following:
How cool is that?! It is such a relief that I no longer have to dread migrations. I don’t have to go find sp_help_revlogin and execute it then copy the stuff over. I don’t have to figure out the default paths of whatever. I don’t have to worry that I’ll copy over a job but not its associated schedule.
Everything is just done for me, and I can sleep better at night 😴
Ever since I was a baby DBA working for a company with a small budget, I’ve always wanted something like dbachecks. dbatchecks helps automate the checklists that we gotta go through every day, week, month, quarter, year and so on.
This used to be a manual pain, but now it’s automated, open-source, free and gorgeous 💅.
That whole module is some awesome code. And you can read about it here.
Thanks for joining me for this month’s T-SQL Tuesday. Sorry I never write about things in-depth.
I was first introduced to open-source on IRC back in 1996. I joined the #toriamos channel on undernet, which was managed by an eggdrop bot named [iCKy].
[iCKy] was an open-source TCL and C-based program that did cool stuff for us, like auto-ban users if they were flooding the channel. There was even a party line that sort of worked like a Linux shell.
This all looked like hacker stuff to me, so I wanted to know how it worked. This meant I had to learn Linux, which I did. Then I had to learn about eggdrops, which I did. Then I setup a few bots on an always-online Linux server. All for $0, too awesome.
By July 1998, I knew TCL well enough to hack an IRC script together and release it. But I gave the project an awful name that would trigger spam filters so I’ll skip it and move on to my second, more mainstream open source project ;)
There used to be this open source directory called freshmeat.net, which eventually became freecode. freshmeat was leet as hell and I dreamt of being part of it.
Finally, I had a project I thought was decent enough to add and released 1.0 on September 5, 1999. SPAST, which stood for Simple Procmail Anti-spam Template, was a procmail template that I setup to filter mail being delivered to my postfix email server.
As the name suggests, SPAST was simple, which made it easy to implement and adopt. I laughed recently when I read the archived review at porkmail.org which said
Not the best possible approach, but it makes it easy to get started.
Totally valid 😂
I found it pretty cool that a couple other projects were inspired by or forked from SPAST, like SPASTIC. SPASTIC, which still exists at sourceforge, was maintained by a guy named Keith Winston and the project eventually grew to have 11 other developers!
Keith even wrote an article titled SpamAssassin vs. Spastic, which compared the two projects. Ultimately, he stopped developing SPASTIC and adopted SpamAssassin. By that time, I’d since migrated to Exchange in an effort to replicate my work environment.
Fighting spam was always a fun way to pass time, and years later in 2007, I wrote a tutorial on how to use Gmail to filter spam in Exchange instead of Postini (which was eventually purchased by Google anyway).
Considering that I’ve dreamt of having a cool open source project since The Verve’s Bitter Sweet Symphony was a chart topper, you can imagine how rewarding it’s been that dbatools has gotten so popular! And it’s a project that revolves around my two favorite things: SQL Server and PowerShell.
We now have over 110 contributors to our GitHub repository and nearly 1500 people in the Slack channel. The experience as a maintainer for a relatively successful project has been everything I’ve dreamed and more 😊
Well, if it wasn’t my very first, it is close enough. Back in 1997, I was taking a computer class at a non-progressive college in Northwest Louisiana. Most of the tech classes still teaching Fortran and the faculty pushed back hard when I asked if we could work with more modern technology.
I was disappointed with my experience there overall, but did enjoy this one class by Dr. John Barber called “Computers and Composition”. Dr. Barber was cool and the first person to introduce me to cyberpunk culture. And that’s about all I remember about the class, except for a website that I worked on as part of an assignment.
The site was called “The Q Zone” and it was built with NetObjects Fusion (and optimized for NetScape, y’all). In my mind this site was HUGE, but looking at it now, it’s only five pages. Five awesome pages of sci-fi fun.
Word and paper do not suffice anymore as hypertext and electronic writing infuses with the various powerful technologies that heighten the communication process. These technologies include the use of Java, Dynamic Hyper Text Markup Language (DHTML) and all types of animated graphics and embellishments.
So good. So 90’s. So Shoney’s.
This animated embellishment brought to you by giphy.
Although I’ve been using SSMS 2017 on my demo machine for a while, I kept SSMS 2016 on my primary workstation until today. I’ve been unsure of the new look of SSMS 2017, but now that I’ve fallen in love with the way it handles XEvents, I decided to make the switch.
Whaatup! That’s super handy. Unfortunately, you can’t run SSMS 2016 and 2017 at the same time, and figuring out how to uninstall SQL Server Management Studio 2016 has been a pain.
Sometimes, SQL Server Management Studio 2016 won’t show up in Add/Remove programs. So I tried to uninstall every bit of SQL Server 2016 since my local db engine was hosed anyway; that didn’t work. As you may recall, in 2016, Microsoft decoupled SSMS from the Engine installer so that wasn’t a big shock.
Ultimately, with the help of StackOverflow, I learned that you can uninstall SSMS 2016 by re-running SSMS-Setup-ENU.exe. If you didn’t keep this file, you can download it again here.
Documentation is an important part of every DBA’s job and Snagit Screen Capture is my screenshot tool of choice. I don’t know how I ever lived without it. Snagit is awesome for both pics and videos – wayyy better than the built-in (but still useful) Snipping tool.
GitHub Desktop for Windows
Gone are the days of myquery.sql.bak -> myquery.sql.bak.bak -> myquery.sql.bak.bak2. Now I do real version control with GitHub and I love it. It makes so much sense and GitHub for Desktop gives me the GUI comfort I need when it comes to version control.
What’s cool about this client is that it eased me into learning and understanding more about git/GitHub. I didn’t have to learn syntax + the whole concept of branching, repos, etc. I only had to learn the concepts and the easy GUI interface. One day I’ll do command-line, but that day is not today.
It snaps better to areas better and even comes with a built-in editor that lets me easily add arrows and do cropping. SnagIt costs money but is well worth the investment.
Sometimes, I need to get a little fancier with my screenshot edits and for that, I use Paint.NET. Paint.NET is free, powerful and fun to use. I use it for all of my logo design (which is often based off of icons found at iconfinder).
Ethervane Echo is a free clipboard manager that I had no idea I needed until I started using it. The fast search functionality is awesome and more than once it’s saved me after I deleted a script by accident. Once I was able to find the entire script (I have a habit of Ctrl-A, Ctrl-C) and another time, I was able to easily stitch it back together from a few different clips.
If you haven’t used a clipboard manager, give it one day and I think you’ll be addicted. The developer’s site is undergoing a redesign right now, but you can download Ethervane Echo directly from Internet Archive.
spaghettidba introduced me to this one. zoom.us is lightweight, reliable and cool Video Conferencing software. Installing it is quick and the quality is super high. I always try to use it now when practicing with fellow presenters, all for free.
Of course! I use dbatools every day. Just yesterday, I had to add a Windows Group to all of my servers and LOOOOOOOVED how easy it was to do with New-DbaLogin. Currently, I’m a huge fan of all the XEvents support, too.
Also, now I don’t fear migrations or worry that my disaster recovery plan is solid. dbatools helps simplify all of that.
I’ve dreamed of a tool like dbachecks since I was younger.
Now, we’ve got all of our checklists in one place. And since it’s free and open-source, other DBA’s have been adding their own checks, which is amazing. I’m looking forward to adding a few more audit checks once I can come up for air, likely after dbatools 1.0 debuts.
So I haven’t used this free cross-platform SQL Management client, teamsql.io, yet but it looks good AF. Not necessarily for SQL Server, but useful if you need to manage Postgres, Redshift, Oracle or whatever.
In the past, I was always horrified by how ugly other management interfaces were compared to SSMS, but this one is nice.
This month Andy Leonard (b/t) wants to know why we do what we do.
When I was a kid, I watched War Games and Ferris Bueller’s Day Off, and immediately wanted to hack. I actually got in trouble for calling Sarah McLachlan’s record label’s BBS to try to hack. I had no idea it was a Canadian number! They look like American numbers.
But there I was, calling a BBS internationally. Sarah McLachlan’s label is named Nettwerk so of course they have leet hacks going on there.
Prior to hacking because I dialed into a long distance BBS, I was playing Infocom games like Wishbringer on MS-DOS and pretending I was hacking. Then, Windows 95 came out and it was on! Me and my best friend Brandon were formatting, fdisking and reinstalling galore. We also called each other endlessly on Procomm Plus.
I went to school in Northern Louisiana and hated it. The curriculum was terrible and I could not get a job; one guy was even delighted when I failed his dumbass hardware test by missing one cable. So in 1997, I looked around the country for places that offered affordable broadband and I moved to California.
When I arrived in San Diego, I got the first job I applied for because the people I interviewed with weren’t sexists. It was at an ISP and I had a blast! I started as tech support and was then promoted to webmaster, in charge of both Apache on FreeBSD and IIS on NT.
I remember having a conversation there, at Simply Internet. I asked which computer jobs were the most respected and made the most money, and someone told me Oracle. So I researched Oracle, hated the interface and bailed. My next job at a software startup needed a SQL Server DBA and I was so there for it 😎
What I love most about SQL Server is that it offers me the chance to do both administration and programming. Administration is cool because sysadmins are the leetest and programming is awesome because the possibilities are endless.
Working with SQL Server also pays pretty well but I do it all because I absolutely love it ❤
The first time I ever spoke in front of a live audience was in Antwerp, Belgium for SQL Server Days Belgium 2015. I was petrified. Years earlier, I was on a regional television show called Good Morning Acadiana and couldn’t even speak. Fortunately, my mom was a co-presenter and picked up my slack. Remembering this, I wondered if words would successfully leave my mouth when I presented in person. They did :D
Since then, I won Best Speaker Overall with Rob Sewell and Best Lightning Talk at SQL Saturday Dublin. I was sooooo blown away, especially considering many of my SQL idols were speaking as well.
The good thing about my first presentation was that Cathrine Wilhemsen was there to support me. She was amazing and awesome and if you can ever have her at your first time speaking, I highly recommend it.
If you’re high energy, don’t be like me on Good Morning Acadiana: don’t drink a lot of coffee before you present. It gives you dry mouth and makes you even more nervous. I, instead, opt for vodka (see point 4).
In the previous months, I was having A/V issues that required me to basically give my speech about 120 times if not more. My speech became muscle memory and even my wife knew every word. It helped knowing I’d be immediately prepared if I ever lost my place.
I videoed myself to see what wasn’t coming across right. Because of this, I noticed that I used my hands in a way that was distracting. I thought it was helping with emphasis, but it became a crutch and a distraction.
My buddy Crawford told me he always takes two shots of whiskey to start a presentation. Whiskey is nasty, so I take 2 shots of Grey Goose vodka. My wife even packs me a tiny cute vodka bottle. The first 2 minutes are often the hardest and vodka or Belgian beer makes it easier.
Cathrine pointed out that my session was fab but that it ended on a weak note – you couldn’t tell that I was actually finished because.. I never really practiced that part. Now I always say something like “My name is Chrissy LeMaire, thanks so much for joining me today”
I don’t aim to teach a whole subject in 60 minutes or less. I’d bet that I suck at teaching PowerShell from scratch. My aim is to excite people into learning more. I knew I accomplished this at SQL Days Belgium when one of the organizers came to me and said that my session made him want to run home and play!
Audiences generally prefer demos, so do a lot of those if you can. And keep your demo environment simple. I used to have a whole domain with clustered and stand-alone instances. It was so stressful! Nowadays, I just roll with a single VM (using Parallels) with 2-3 local instances. I rely heavily on Snapshots and update my VM regularly.
When I practice at home, I always practice as if there’s an audience. I’m standing, my voice is booming and I’m looking at the wall. This, incidentally, helps me when I’m too exhausted to maintain eye contact. I look right above the audience, at the closest wall above people’s heads. This gives me the appearance of being engaged without having to exert the effort of finding the ultra-friendly face.
Something you don’t see on this list is Toastmasters. I actually went to a meeting but found that I’d potentially be picking up bad practices. Our meeting’s toastmaster played very much by the book. They had pauses, eye contact, and articulation but it felt so robotic. I opted instead in embracing myself and not thinking “Pause. 1-2-3. Speak.” in my head. Others may find it useful but it wasn’t my style.
Just do it
For the first year or so, I dreaded presenting but felt compelled to share my PowerShell story. I needed show the SQL Server community how simple PowerShell could be. I needed to change minds and wanted to excite people. So even though I was tortured up until the day I presented, I still did it anyway. And those memes you see on Twitter were true for me. The stages of presenting:
Dread and anxiety
Wow, that was actually super fun and rewarding! Let’s see where else I can present!
Dread and anxiety
But that eventually goes away and speaking gets easy! Now, my original argument against public speaking has been invalidated. I used to say “Public speaking is like eating canned lima beans. I hate it. And no matter how often I do it, I always will.” Well, I still hate canned lima beans, but I enjoy speaking publicly about PowerShell ;)
And a wonderful side effect of speaking for me has been making new friends. Now, I don’t feel so isolated here in Belgium. I know within a couple months, I’ll be seeing my friends somewhere neat and new, like Iceland, Ireland, Vienna, Lingen or Seattle ❤️
And don’t give up
My first year or two of session submissions was filled with rejection emails. But I just whimpered a bit then continued to submit every place I’ve ever wanted to visit.
Now, I get to present precons at PASS Summit and even SQLBits! So if you get several rejections in a row, just keep refining your abstract and keep on submitting.
Oh, and don’t ever skip a speaker dinner! Like Cathrine told me, it’s one of the coolest parts of the whole experience. And the food is always awesome!
If you’re a new speaker, congrats! I hope these tips help. If not, take 2 shots and call me in the morning ;)