<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Uwe Janke</title>
    <description>The latest articles on DEV Community by Uwe Janke (@uwe_janke_f3780b033efd0b6).</description>
    <link>https://dev.to/uwe_janke_f3780b033efd0b6</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3967083%2Fe59a2066-fd4f-4e5a-9689-733af207a461.png</url>
      <title>DEV Community: Uwe Janke</title>
      <link>https://dev.to/uwe_janke_f3780b033efd0b6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uwe_janke_f3780b033efd0b6"/>
    <language>en</language>
    <item>
      <title>Getting Started with sqmSQLTool: SQL Server Administration Made Easy</title>
      <dc:creator>Uwe Janke</dc:creator>
      <pubDate>Wed, 03 Jun 2026 19:31:20 +0000</pubDate>
      <link>https://dev.to/uwe_janke_f3780b033efd0b6/getting-started-with-sqmsqltool-sql-server-administration-made-easy-2cbb</link>
      <guid>https://dev.to/uwe_janke_f3780b033efd0b6/getting-started-with-sqmsqltool-sql-server-administration-made-easy-2cbb</guid>
      <description>&lt;p&gt;Learn how to automate SQL Server administration tasks with sqmSQLTool, a powerful PowerShell module built on dbatools.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Manual SQL Server Administration is Painful
&lt;/h2&gt;

&lt;p&gt;As a SQL Server DBA, you know the drill:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checking database health across multiple servers manually ❌&lt;/li&gt;
&lt;li&gt;Running the same health checks and reports repeatedly ❌&lt;/li&gt;
&lt;li&gt;Scripting everything from scratch for each environment ❌&lt;/li&gt;
&lt;li&gt;No standardized way to monitor AlwaysOn Availability Groups ❌&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What if there was a &lt;strong&gt;single tool that could automate 90% of your daily DBA tasks&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;sqmSQLTool&lt;/strong&gt; — a comprehensive PowerShell module with &lt;strong&gt;100+ pre-built functions&lt;/strong&gt; for SQL Server administration.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is sqmSQLTool?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;sqmSQLTool&lt;/strong&gt; is a professional-grade PowerShell module built on top of the excellent &lt;a href="https://dbatools.io" rel="noopener noreferrer"&gt;dbatools&lt;/a&gt; library. It extends dbatools with specialized functions for:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Health Monitoring &amp;amp; Reporting&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database health checks&lt;/li&gt;
&lt;li&gt;Blocking &amp;amp; deadlock analysis&lt;/li&gt;
&lt;li&gt;Performance counter tracking&lt;/li&gt;
&lt;li&gt;Index fragmentation reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;AlwaysOn / High Availability&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AG health status&lt;/li&gt;
&lt;li&gt;Automatic failover management&lt;/li&gt;
&lt;li&gt;Database replication automation&lt;/li&gt;
&lt;li&gt;Node synchronization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;Security &amp;amp; Compliance&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sysadmin account auditing&lt;/li&gt;
&lt;li&gt;Certificate management&lt;/li&gt;
&lt;li&gt;Login audit trails&lt;/li&gt;
&lt;li&gt;SPN configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;Backup &amp;amp; Restore&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backup integrity verification&lt;/li&gt;
&lt;li&gt;Automated restore procedures&lt;/li&gt;
&lt;li&gt;Backup scheduling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;And 90+ more functions...&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Installation (2 Minutes)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Option 1: From GitHub (Recommended — Always Latest)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;clone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://github.com/JankeUwe/sqmSQLTool.git&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sqmSQLTool&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Run the installer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\Install.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why GitHub?&lt;/strong&gt; You get the latest code immediately. PowerShell Gallery can lag behind releases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 2: From PowerShell Gallery (Simplified)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install for current user&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Install-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sqmSQLTool&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Scope&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;CurrentUser&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Or for all users (requires admin)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Install-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sqmSQLTool&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Scope&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;AllUsers&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Import the module&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Import-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sqmSQLTool&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; PSGallery updates may lag. For the latest features and fixes, use GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  Verify Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# List all available commands&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-Command&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sqmSQLTool&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Select-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Should show 100+ functions&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Your First 5 Minutes: Quick Wins
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1️⃣ Check Database Health
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-sqmDatabaseHealth&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-SqlInstance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_SERVER"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt; Instant report showing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database sizes&lt;/li&gt;
&lt;li&gt;Free space&lt;/li&gt;
&lt;li&gt;Autogrowth status&lt;/li&gt;
&lt;li&gt;Recovery model&lt;/li&gt;
&lt;li&gt;Last backup times&lt;/li&gt;
&lt;li&gt;Health warnings (if any)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2️⃣ Check Disk Space
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-sqmDiskSpaceReport&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-SqlInstance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_SERVER"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All disk drives on the server&lt;/li&gt;
&lt;li&gt;Used vs. available space&lt;/li&gt;
&lt;li&gt;Percentage full&lt;/li&gt;
&lt;li&gt;Warnings if disk is &amp;gt;80% full&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3️⃣ Monitor AlwaysOn AG Status
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-sqmAgHealthReport&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-SqlInstance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_AG_PRIMARY"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All replicas in the AG&lt;/li&gt;
&lt;li&gt;Synchronization state&lt;/li&gt;
&lt;li&gt;Failover readiness&lt;/li&gt;
&lt;li&gt;Log send/redo queue&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4️⃣ Find Missing Indexes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-sqmMissingIndexes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-SqlInstance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_SERVER"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Indexes that queries are requesting&lt;/li&gt;
&lt;li&gt;Performance improvement estimates&lt;/li&gt;
&lt;li&gt;SQL to create the index&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Real-World Example: Daily Health Check Script
&lt;/h2&gt;

&lt;p&gt;Here's a complete script you could run daily:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Daily SQL Server Health Check&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$servers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@(&lt;/span&gt;&lt;span class="s2"&gt;"SQL01"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SQL02"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SQL03"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="kr"&gt;foreach&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$servers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"=== Health Check: &lt;/span&gt;&lt;span class="nv"&gt;$server&lt;/span&gt;&lt;span class="s2"&gt; ==="&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ForegroundColor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Cyan&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="c"&gt;# Database health&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$dbHealth&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Get-sqmDatabaseHealth&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-SqlInstance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$server&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Databases: &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nv"&gt;$dbHealth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Count&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ForegroundColor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Green&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="c"&gt;# Disk space&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$diskSpace&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Get-sqmDiskSpaceReport&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-SqlInstance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$server&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$fullDisks&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$diskSpace&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Where-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;PercentUsed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-gt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$fullDisks&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"⚠️ ALERT: Disks &amp;gt;80% full!"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ForegroundColor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Red&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Disk Space: OK"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ForegroundColor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Green&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="c"&gt;# AG Status (if applicable)&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$agHealth&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Get-sqmAgHealthReport&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-SqlInstance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ErrorAction&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;SilentlyContinue&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$agHealth&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AlwaysOn: Synchronized"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ForegroundColor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Green&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why Use sqmSQLTool Instead of Manual Scripts?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Database Health Check
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual:&lt;/strong&gt; 30+ lines of T-SQL + PowerShell&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;With sqmSQLTool:&lt;/strong&gt; 1 line: &lt;code&gt;Get-sqmDatabaseHealth&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saves:&lt;/strong&gt; ~2 hours per check&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Disk Space Report
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual:&lt;/strong&gt; Write WMI queries + format output&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;With sqmSQLTool:&lt;/strong&gt; 1 line: &lt;code&gt;Get-sqmDiskSpaceReport&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saves:&lt;/strong&gt; ~1 hour per report&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AG Failover
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual:&lt;/strong&gt; Complex T-SQL + error handling
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;With sqmSQLTool:&lt;/strong&gt; 1 line: &lt;code&gt;Invoke-sqmFailover&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saves:&lt;/strong&gt; ~30 minutes per failover&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backup Integrity
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual:&lt;/strong&gt; SQL Server Maintenance Plan or custom script&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;With sqmSQLTool:&lt;/strong&gt; 1 line: &lt;code&gt;Test-sqmBackupIntegrity&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saves:&lt;/strong&gt; ~1.5 hours per verification&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; ~100+ hours saved per year per DBA 📊&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Help &amp;amp; Documentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Built-In Help
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Get help for any function&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-Help&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Get-sqmDatabaseHealth&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Full&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Open online documentation&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-Help&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Get-sqmDatabaseHealth&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Online&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Community &amp;amp; Support
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Issues:&lt;/strong&gt; Report bugs or request features&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Discussions:&lt;/strong&gt; Ask questions, share tips&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PowerShell Gallery:&lt;/strong&gt; View package details and reviews&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://www.powershelldba.de" rel="noopener noreferrer"&gt;www.powershelldba.de&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Explore the Full Function Library
&lt;/h3&gt;

&lt;p&gt;The module has &lt;strong&gt;100+ functions&lt;/strong&gt;. Here are some popular ones:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# See ALL available functions&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-Command&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sqmSQLTool&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Select-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Synopsis&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Format-Table&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-AutoSize&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Popular functions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Get-sqmBlockingReport&lt;/code&gt; — Find blocking queries&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Get-sqmDeadlockReport&lt;/code&gt; — Analyze deadlocks&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Get-sqmWaitStatistics&lt;/code&gt; — Performance diagnostics&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Get-sqmSysadminAccounts&lt;/code&gt; — Security audit&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Invoke-sqmRestoreDatabase&lt;/code&gt; — Automated restore&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Invoke-sqmPerfBaseline&lt;/code&gt; — Performance baseline&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Automate Your Daily Tasks
&lt;/h3&gt;

&lt;p&gt;Create a scheduled PowerShell task that runs your health checks every morning:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Pseudo-code for scheduled task&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$script&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sh"&gt;@"
Import-Module sqmSQLTool
Get-sqmDatabaseHealth -SqlInstance "PROD-SQL-01" | Export-Csv "C:\Reports\health_&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="n"&gt;Get-Date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'yyyy-MM-dd'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;.csv"
Get-sqmDiskSpaceReport -SqlInstance "PROD-SQL-01" | Export-Csv "C:\Reports\diskspace_&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="n"&gt;Get-Date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'yyyy-MM-dd'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;.csv"
"@&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Schedule with Windows Task Scheduler&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  One More Thing: Star the Project! ⭐
&lt;/h2&gt;

&lt;p&gt;If sqmSQLTool saves you time, please &lt;strong&gt;star the repository&lt;/strong&gt; on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/JankeUwe/sqmSQLTool" rel="noopener noreferrer"&gt;github.com/JankeUwe/sqmSQLTool&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stars help the project gain visibility and attract more contributors!&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;sqmSQLTool&lt;/strong&gt; is your SQL Server administration Swiss Army knife:&lt;/p&gt;

&lt;p&gt;✅ 100+ pre-built functions&lt;br&gt;
✅ Built on proven dbatools library&lt;br&gt;
✅ Free &amp;amp; open source (MIT License)&lt;br&gt;
✅ Active development &amp;amp; community support&lt;br&gt;
✅ Saves ~100+ hours per year&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get started now:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Install-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sqmSQLTool&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-sqmDatabaseHealth&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-SqlInstance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_SERVER"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Questions?&lt;/strong&gt; Visit the &lt;a href="https://github.com/JankeUwe/sqmSQLTool/discussions" rel="noopener noreferrer"&gt;GitHub Discussions&lt;/a&gt; or check the &lt;a href="https://www.powershellgallery.com/packages/sqmSQLTool" rel="noopener noreferrer"&gt;PowerShell Gallery page&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;sqmSQLTool&lt;/strong&gt; is developed by &lt;a href="https://www.powershelldba.de" rel="noopener noreferrer"&gt;Uwe Janke&lt;/a&gt;, a Senior SQL Server DBA with 30+ years of experience in database administration and automation. Built for real-world enterprise environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Follow for updates:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/JankeUwe" rel="noopener noreferrer"&gt;@JankeUwe&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://linkedin.com/in/uwejanke" rel="noopener noreferrer"&gt;Uwe Janke&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://www.powershelldba.de" rel="noopener noreferrer"&gt;www.powershelldba.de&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Happy SQL Server administrating!&lt;/em&gt; 🚀&lt;/p&gt;

</description>
      <category>powershell</category>
      <category>sqlserver</category>
      <category>dba</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
