{"id":3298,"date":"2026-09-15T13:26:01","date_gmt":"2026-09-15T13:26:01","guid":{"rendered":"https:\/\/www.mjtnet.com\/blog\/?p=3298"},"modified":"2026-09-15T13:26:01","modified_gmt":"2026-09-15T13:26:01","slug":"ai-can-write-the-script-but-what-runs-it","status":"publish","type":"post","link":"https:\/\/www.mjtnet.com\/blog\/2026\/09\/15\/ai-can-write-the-script-but-what-runs-it\/","title":{"rendered":"AI Can Write the Script. But What Runs It?"},"content":{"rendered":"<p>AI Can Write the Script. But What Runs It?<\/p>\n<p>A few weeks ago I wrote about how AI is changing Windows automation.<\/p>\n<p>One of the most obvious changes is that it&#8217;s becoming remarkably easy to generate code.<\/p>\n<p>Need a PowerShell script to process a folder full of files? Ask an AI.<\/p>\n<p>Need some Python to call an API and turn the response into a CSV? It can probably get you most of the way there in seconds.<\/p>\n<p>Need a bit of VBScript, JavaScript or even Macro Scheduler code? Same thing.<\/p>\n<p>For developers \u2013 and increasingly for people who aren&#8217;t developers \u2013 AI has dramatically lowered the barrier to creating small pieces of automation.<\/p>\n<p>But there&#8217;s an important distinction which I think sometimes gets overlooked:<\/p>\n<p>Writing the script isn&#8217;t the same as running the automation.<\/p>\n<p><strong>THE SCRIPT IS ONLY PART OF THE JOB<\/strong><\/p>\n<p>Imagine you&#8217;ve asked an AI to create a PowerShell script which downloads a report, processes it and saves the result somewhere.<\/p>\n<p>Great. You now have a script.<\/p>\n<p>But perhaps the actual requirement is:<\/p>\n<p>&#8211; Run it every weekday at 6am<br \/>\n&#8211; Run it unattended<br \/>\n&#8211; Pass it the correct parameters<br \/>\n&#8211; Capture the output<br \/>\n&#8211; Know whether it succeeded<br \/>\n&#8211; Do something else afterwards<br \/>\n&#8211; Retry or take another action if something fails<br \/>\n&#8211; Keep a log of what happened<\/p>\n<p>At that point the problem isn&#8217;t really &#8220;how do I write this script?&#8221; any more.<\/p>\n<p>It&#8217;s &#8220;how do I turn this script into a reliable automation?&#8221;<\/p>\n<p>And those are two different problems.<\/p>\n<p><strong>AI IS MAKING THE BUILDING BLOCKS EASIER<\/strong><\/p>\n<p>I&#8217;ve been writing automation software for nearly 30 years, and one thing that has remained fairly constant is that useful automations tend to be made up of lots of different pieces.<\/p>\n<p>A Macro Scheduler script might launch an application, interact with its user interface, run a command-line utility, execute some PowerShell, query a database, move some files and send an email.<\/p>\n<p>It doesn&#8217;t particularly matter where those individual pieces came from.<\/p>\n<p>You might have written them yourself.<\/p>\n<p>A colleague might have written them ten years ago.<\/p>\n<p>You might have copied and adapted something from Stack Overflow.<\/p>\n<p>Or, increasingly, you might have asked an AI to create them five minutes ago.<\/p>\n<p>The interesting thing about AI is that it makes many of those building blocks much easier to create.<\/p>\n<p>That doesn&#8217;t necessarily remove the need for automation tools.<\/p>\n<p>Arguably, it gives us more things to automate.<\/p>\n<p><strong>ORCHESTRATION STILL MATTERS<\/strong><\/p>\n<p>This is where I think traditional automation tools still have an important role.<\/p>\n<p>Something needs to join all those pieces together.<\/p>\n<p>Something needs to decide when they run, in what order, with what parameters and what happens when something goes wrong.<\/p>\n<p>And sometimes the thing you&#8217;re trying to automate doesn&#8217;t have an API or a convenient command-line interface at all.<\/p>\n<p>It&#8217;s still a Windows application with buttons, menus, dialogs and fields that somebody would otherwise have to operate manually.<\/p>\n<p>AI can help you write code.<\/p>\n<p>But code generation doesn&#8217;t magically make every application programmable, nor does it automatically give you reliable unattended execution.<\/p>\n<p><strong>USE AI AND AUTOMATION TOGETHER<\/strong><\/p>\n<p>I don&#8217;t see this as AI versus traditional automation.<\/p>\n<p>The more interesting combination is AI plus automation.<\/p>\n<p>Use AI to help create scripts, regular expressions, SQL, PowerShell, Python or whatever other building blocks you need.<\/p>\n<p>Then use the appropriate automation tools to put those pieces together and run them reliably.<\/p>\n<p>That might be Macro Scheduler. It might be Windows Task Scheduler. It might be a CI system, a cloud service or something else entirely.<\/p>\n<p>Use the simplest tool that solves the problem.<\/p>\n<p>But don&#8217;t confuse generating a piece of code with solving the whole automation problem.<\/p>\n<p>AI can write the script.<\/p>\n<p>Something still has to run it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AI Can Write the Script. But What Runs It? A few weeks ago I wrote about how AI is changing Windows automation. One of the most obvious changes is that it&#8217;s becoming remarkably easy to generate code. Need a PowerShell script to process a folder full of files? Ask an AI. Need some Python to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[39,4],"tags":[],"_links":{"self":[{"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/posts\/3298"}],"collection":[{"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/comments?post=3298"}],"version-history":[{"count":1,"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/posts\/3298\/revisions"}],"predecessor-version":[{"id":3299,"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/posts\/3298\/revisions\/3299"}],"wp:attachment":[{"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/media?parent=3298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/categories?post=3298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mjtnet.com\/blog\/wp-json\/wp\/v2\/tags?post=3298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}