<?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: Gavin Dobbs</title>
    <description>The latest articles on DEV Community by Gavin Dobbs (@gavindobbs_wa).</description>
    <link>https://dev.to/gavindobbs_wa</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%2F3766598%2F6cbcbe33-a8de-41fe-8bed-6e430c01e9d2.jpeg</url>
      <title>DEV Community: Gavin Dobbs</title>
      <link>https://dev.to/gavindobbs_wa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gavindobbs_wa"/>
    <language>en</language>
    <item>
      <title>Stop Burning Money: How to Find Orphaned Azure Disks with PowerShell</title>
      <dc:creator>Gavin Dobbs</dc:creator>
      <pubDate>Fri, 13 Feb 2026 00:20:26 +0000</pubDate>
      <link>https://dev.to/gavindobbs_wa/stop-burning-money-how-to-find-orphaned-azure-disks-with-powershell-5a8f</link>
      <guid>https://dev.to/gavindobbs_wa/stop-burning-money-how-to-find-orphaned-azure-disks-with-powershell-5a8f</guid>
      <description>&lt;h2&gt;
  
  
  The Invisible Cost of the Cloud
&lt;/h2&gt;

&lt;p&gt;One of the most common "silent killers" in Azure billing is the &lt;strong&gt;Orphaned Managed Disk&lt;/strong&gt;. When you delete a Virtual Machine in Azure, the default behavior often leaves the OS and Data disks behind. These disks sit in your Resource Group, unattached, doing nothing—but you are still paying for them every single month.&lt;/p&gt;

&lt;p&gt;As a Cloud Engineer, I wrote a quick PowerShell script to audit an entire tenant for these "zombie" resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution
&lt;/h3&gt;

&lt;p&gt;We can use the &lt;code&gt;Get-AzDisk&lt;/code&gt; cmdlet to inspect the &lt;code&gt;ManagedBy&lt;/code&gt; property. If this property is null, the disk is not attached to any compute resource.&lt;/p&gt;

&lt;p&gt;Here is the core logic:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
powershell
$disks = Get-AzDisk
foreach ($disk in $disks) {
    if ($null -eq $disk.ManagedBy) {
        Write-Host "Orphan Found: $($disk.Name)"
    }
}

Get the Full Script
I have published a robust version of this tool on my https://github.com/LordTalyn1984/LordTalyn1984. It scans all subscriptions and generates a CSV report for your finance team.

View the Code on GitHub

Why This Matters
For a standard Premium SSD (P30), you could be wasting over $130/month per disk. In a large environment, I've seen this script uncover thousands of dollars in wasted spend in under 5 minutes.

Gavin Dobbs is a Cloud Engineer specializing in Azure Governance and Automation. Connect with me on https://www.linkedin.com/in/gavin-dobbs-texas/.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>azure</category>
      <category>powershell</category>
      <category>cloud</category>
      <category>devops</category>
    </item>
    <item>
      <title>The Importance of Automating Patch Management in Regulated Industries</title>
      <dc:creator>Gavin Dobbs</dc:creator>
      <pubDate>Wed, 11 Feb 2026 14:47:23 +0000</pubDate>
      <link>https://dev.to/gavindobbs_wa/the-importance-of-automating-patch-management-in-regulated-industries-5be0</link>
      <guid>https://dev.to/gavindobbs_wa/the-importance-of-automating-patch-management-in-regulated-industries-5be0</guid>
      <description>&lt;p&gt;As a Systems Administrator who has spent the last 8 years in the financial sector (handling $29B in assets), I've learned that manual patching is a security risk, not just a time sink.&lt;/p&gt;

&lt;p&gt;In SOX-compliant environments, "Human Error" is not an acceptable root cause during an audit. That is why I rely heavily on automating workflows through &lt;strong&gt;SCCM (MECM)&lt;/strong&gt; and &lt;strong&gt;PowerShell&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Core Rule for Infrastructure:
&lt;/h3&gt;

&lt;p&gt;If you have to do it more than twice, script it.&lt;/p&gt;

&lt;p&gt;Whether it is managing Tier 1 Storage Arrays or coordinating weekend release cycles for Online Banking, automation ensures:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Consistency:&lt;/strong&gt; Every server gets the exact same configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditability:&lt;/strong&gt; Logs prove exactly what happened and when.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speed:&lt;/strong&gt; We can patch critical vulnerabilities (Zero-Day) across 500+ endpoints in hours, not days.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I am currently relocating to the &lt;strong&gt;Pacific Northwest (Washington)&lt;/strong&gt; and looking forward to bringing these "Zero Trust" and "Automation First" methodologies to new critical infrastructure projects.&lt;/p&gt;

&lt;p&gt;Connect with me on &lt;a href="https://www.linkedin.com/in/gavin-dobbs-texas/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to discuss infrastructure resilience.&lt;/p&gt;

</description>
      <category>powershell</category>
      <category>mecm</category>
      <category>endpoint</category>
      <category>sccm</category>
    </item>
  </channel>
</rss>
