TIP: Just paste this url into Claude Code and say "implement this for me" Claude Code writes great PowerShell, but it's not the best at using it as a shell. It's basically bash on top of PowerShell. Every single session, I see the same thing: It tries powershell.exe -Command (Windows PowerShell 5.1, modules don't load) It fails, switches to pwsh -Command with inline code (bash eats the quoting) It…
When creating dbatools commands, most of us use case-insensitive collation because that's the default and what we use in our labs. So creating commands that call T-SQL always works on our machines, but then we'll get an issue requesting that we fix a command to work on someone's case-sensitive SQL Server. With case-sensitive collation (CS), dbo.cats and dbo.Cats are two distinct objects. Fixing…
TL;DR: ChatGPT Pro ($20/month) gives you access to GPT-5 via Codex CLI which is perfect for automating blog updates. I used it on this very blog and was able to update about 50 blog posts before I hit the rate limit. After the rate limit is hit, I have to wait for up to 4 hours then start again. Skip the recommended Codex model (it's terrible) and GPT-5 minimal reasoning.
TL;DR: I used Claude Code CLI to batch-update 100+ dbatools blog posts from 2016-2025. It fixed broken links, converted old PowerShell screenshots to text, updated deprecated commands, and even found new websites for people mentioned in old posts. 1 Get-ChildItem *. md | Invoke-AITool -Prompt .\ blog-refresh . md The AI handled nuanced judgment calls I'd never do manually. See the full commit . We…
TL;DR: Use GitHub Copilot CLI to batch-update old blog posts—fix broken links, modernize code examples, convert screenshots to text. 1 Get-ChildItem *. md | Invoke-AITool -Prompt .\ blog-refresh . md Write a prompt doc with your rules, run the command, review the diffs, commit what works. Yesterday I wrote about updating blog content with Claude Code . But what if your company uses GitHub Copilot…
I just rebuilt dbatools.io in a day. The new site is developer-focused, modern, and actually useful. And I did it all with Claude Haiku, which until recently was completely useless to me. The Origin Story: Notepad++ When I first designed dbatools.io back in 2016, I based it on Notepad++ . At the time, I had no idea they were open source—they looked like a polished commercial product. That's…
When someone asks about SQL Server architecture, the reflexive answer is usually 'High Availability,' as if it's a requirement rather than a choice. But after 20 years of managing SQL Server environments, I've found that HA often creates more problems than it solves, especially in certain types of organizations. The Turnover Problem Most places I've worked have rotating staff—people are out within…
TL;DR : In Windows, many AI CLI tools (Aider, Claude Code, Gemini, etc.) work unreliably with PowerShell's standard output capture. The solution is to write to temp files instead of variables or add a -Raw flag for when you need the tool to actually commit changes instead of just previewing them or hanging forever. The Unix tooling problem on Windows Most AI tools seem to be written using…
TLDR: dbatools is moving to Azure Trusted Signing, which means Microsoft backs our reputation and dbatools won't trigger as many antivirus false positives. Users upgrading from older signed versions will need -SkipPublisherCheck only once during the initial transition. PowerShell users with strict ExecutionPolicies (AllSigned/RemoteSigned) will need to trust each new certificate after every update…
Recently, I wrote about a system I created that automatically classifies SharePoint documents , but only briefly touched on the most important part—the Azure Function that does all the heavy lifting. This post walks through the technical part of this document processing engine and demos how to build an Azure Function that extracts text from documents, analyzes content with cognitive services, and…