Sign in

James Brundage | MVP

@mrpowershell.com
1.8K followers 526 following 5K posts

Jack of all Trades, Master of PowerShell. Prolific Programmer Microsoft MVP in Azure / PowerShell mrpowershell.com github.com/StartAutomating github.com/PowerShellWeb NB, Neurodivergent, Nerdy, Newsjunkie. Ask me anything.

PostsRepliesMedia
James Brundage | MVP @mrpowershell.com · 10h
🤔 now if only you could realize that only one of these supports rich objects. Seriously... The PowerShell object pipeline is overpowered and I would love to see rich weather data access in it. Rather than just download your files, why not figure out how to decode them in PowerShell?
000
James Brundage | MVP @mrpowershell.com · 28/09/2026
One does not try to parse html only with regex. One uses regex to whittle down and isolate parts of html into something you can more easily match. The trick I showed earlier does that. Find me all root elements of this type. Then cast to xml.
001
James Brundage | MVP @mrpowershell.com · 27/09/2026
Always happy to hear that! Cross platform PowerShell is especially potent.
010
James Brundage | MVP @mrpowershell.com · 27/09/2026
Re the regex, I get a lot of luck out of simple brutish patterns like: [Regex]::Matches($html, "<table.+?/table>", "IgnoreCase") This will find all of the top level tables in a page. 80% of the time, this will cleanly cast -as [xml]. Then you just dot into the rows / columns.
110
James Brundage | MVP @mrpowershell.com · 27/09/2026
IMO the "Intro to PowerShell" article is overly verbose, slightly inaccurate, and unrelated to the task at hand. Long story made short: use Invoke-RestMethod for json/xml/text, and Invoke-WebRequest for link crawling and media downloads. Cast to xml where possible. Use some regex to isolate tags.
110
James Brundage | MVP @mrpowershell.com · 27/09/2026
Don't know, but I do know PowerShell is cross platform and runs on Linux *without* a Proton layer.
110
James Brundage | MVP @mrpowershell.com · 25/09/2026
I swear I'm gonna be the first person in history who can write sheet music before they can read it.
020
James Brundage | MVP @mrpowershell.com · 25/09/2026
I suppose you could think of languages as paint. But the choice of how to use those languages is the art. That's what programming is. Can you paint or program in ways that feel neither terribly creative or artistic? Sure. Can you paint or program a Sistine Chapel? Also sure.
000
James Brundage | MVP @mrpowershell.com · 25/09/2026
If code were actually fungible, I wouldn't find myself constantly explaining concepts like coupling and cohesion. Lots of code is a strongly coupled mess, where destabilizing the wrong block causes the whole Jenga tower to fall.
010
James Brundage | MVP @mrpowershell.com · 25/09/2026
Don't wanna be too "old person grumbles", but I feel like you're right.
000
James Brundage | MVP @mrpowershell.com · 25/09/2026
Having spent the past two weeks building musical instruments in PowerShell, I can confirm that code is art.
000
James Brundage | MVP @mrpowershell.com · 24/09/2026
Nice! If you want to make the object a little easier on the eyes in the terminal, you can use a DefaultDisplay property set (or write a formatter) Both are easy with EZOut github.com/StartAutomat...
github.com
GitHub - StartAutomating/EZOut: EZOut is a PowerShell module to help take the pain out of writing format and types XML
EZOut is a PowerShell module to help take the pain out of writing format and types XML - StartAutomating/EZOut
020
James Brundage | MVP @mrpowershell.com · 23/09/2026
Nifty! If you want extra bonus points, please add an HTML script property to each object, containing <img src='XKCDUrl'></img> That way this module will be easy to embed into pages.
111
James Brundage | MVP @mrpowershell.com · 22/09/2026
To add a little more context... There's a whole formatting subsystem to PowerShell. You can format any object any way you want. Formatters come in four types: Table, List, Wide, and Custom Custom is what it sounds like, and will let you display any object any way you want.
040
James Brundage | MVP @mrpowershell.com · 22/09/2026
Yes. You just need to write a format file to do it. Got a very old easy module for that: github.com/StartAutomat... Table formatters can right align or center a column Write-FormatView -TypeName Foo -Property bar, baz -AlignProperty @{baz='Right'}
github.com
GitHub - StartAutomating/EZOut: EZOut is a PowerShell module to help take the pain out of writing format and types XML
EZOut is a PowerShell module to help take the pain out of writing format and types XML - StartAutomating/EZOut
021
James Brundage | MVP @mrpowershell.com · 21/09/2026
This is exactly why I love building stuff in PowerShell most people don't think is possible. This week it's direct audio manipulation. Who knows what next week will be? Shell languages *are* real programming languages.
050
James Brundage | MVP @mrpowershell.com · 20/09/2026
What WMIC and WMI were missing was good interactive exploration / orchestration of objects. WMIC got closer than raw WMI. PowerShell quantum leaped that and made it easy to explore / orchestrate *any* object.
100
James Brundage | MVP @mrpowershell.com · 20/09/2026
Yeah. The lineage goes back further as well, it just splits in multiple directions before that WMIC built its syntax atop of WMI, which was already pretty logically oriented into classes. WMIC just chopped off the Win32_ for shorter typing. Cool tool, but still hard to orchestrate.
200
James Brundage | MVP @mrpowershell.com · 20/09/2026
Guess I'm not the only nerd that spent part of their weekend playing with wave files in PowerShell. Now to spend the other part of my weekend playing with wave files in PowerShell...
011
James Brundage | MVP @mrpowershell.com · 20/09/2026
Whatcha making?
110
James Brundage | MVP @mrpowershell.com · 20/09/2026
I mostly agree with you but thought you should know: WMIC and PowerShell had the same initial PM. So it's not so much "inherited the estate" as "broadened the scope and building a better castle"
100
James Brundage | MVP @mrpowershell.com · 18/09/2026
This is probably Codex not knowing the right switch to flip. If they are launching stuff they Task Scheduler, they can control task priority. IIRC it defaults to Below Normal. Otherwise they can always change the priority on any process with PowerShell. 🤷 You'd hope a codex would know this.
010
James Brundage | MVP @mrpowershell.com · 17/09/2026
Watching @bjompen.com 's talk on making #MIDI music with #PowerShell www.youtube.com/watch?v=iEah... Inspiring Stuff! 🤔 Really should connect with them about the recent experiments with Wave Files
youtube.com
Musical PowerShell - Make your scripts sound awesome! - Björn Sundling - PSConfEU 2026
YouTube video by PowerShell Conference Europe
010
James Brundage | MVP @mrpowershell.com · 17/09/2026
🤔 have you run Get-Help? There *is* documentation on damn near every command and parameter in PowerShell. You just ask PowerShell for help and you get it. Get-Command -Syntax also helps. The behavior you're describing matches more Linux commands than PowerShell commands.
100
James Brundage | MVP @mrpowershell.com · 16/09/2026
It's the little things Like being able to make #Music with #PowerShell in a #GitHubAction, at 5x realtime. GitHub workflow runners are quicker than you'd think. And Making Music in a GitHub Workflow is beautifully batty.
For comparison I rock 32 cores @ 4.10ghz and normally see this script running in 2 seconds.
040
Reposted by James Brundage | MVP
James Brundage | MVP @mrpowershell.com · 16/09/2026
Figured out how to make #music with #PowerShell Just make .wav files 😎 Been a fun few days. Made a synth over a weekend. Got sine/saw/triangle/square waves working. Didn't expect them to be so beautiful. 🩵 Code in alt (12 lines!) BTW, also supports #MIDI & DECPS 🤷😏 #RetroGaming #Tetris
091
James Brundage | MVP @mrpowershell.com · 16/09/2026
Figured out how to make #music with #PowerShell Just make .wav files 😎 Been a fun few days. Made a synth over a weekend. Got sine/saw/triangle/square waves working. Didn't expect them to be so beautiful. 🩵 Code in alt (12 lines!) BTW, also supports #MIDI & DECPS 🤷😏 #RetroGaming #Tetris
091
James Brundage | MVP @mrpowershell.com · 13/09/2026
Got this about 20 minutes ago. The key was understanding doubling of cycle frequency, which presented itself as A5 or A6 instead of A4. Well within hearing range, and useful data. All done now though, and now I understand it enough to avoid the bug.
100
James Brundage | MVP @mrpowershell.com · 13/09/2026
I'll get to the bottom of the bug first... Considering it's a bug in generated audio, adding filters that might suppress it might give me a false sense of confidence that it's working. So 🤷 cursed to hear various multiples of 440Hz until I get it right.
100
James Brundage | MVP @mrpowershell.com · 13/09/2026
The really annoying thing about debugging audio generation scripts is the sounds it makes along the way. Like a giant buzzer telling you "still wrong"
100
James Brundage | MVP @mrpowershell.com · 12/09/2026
In case you missed it (or want to see a dirty preview) gist.github.com/StartAutomat...
gist.github.com
Gist make me a .wav
Gist make me a .wav. GitHub Gist: instantly share code, notes, and snippets.
011
James Brundage | MVP @mrpowershell.com · 12/09/2026
Good old fashioned .wav files (aka the foundational base)
010
James Brundage | MVP @mrpowershell.com · 12/09/2026
I'm torn between wanting to work on a module for Wave files and wanting to listen to music.
110
James Brundage | MVP @mrpowershell.com · 12/09/2026
BTW / clicked over to your profile and noticed you've also been doing some interesting things with Static Site generation. Bimbo looks cool! (though I'm more of a Thembo myself) I've been doing SSG with PowerShell for a bit. If you ever want to collab or want inspiration, LMK.
010
James Brundage | MVP @mrpowershell.com · 12/09/2026
Thanks for the doclink! Glad you're already aware. I'm constantly surprised by how many people think PowerShell is Windows Only.
010
James Brundage | MVP @mrpowershell.com · 12/09/2026
A - Very Cool! Please release a doc on this as I would love to try. B - FYI, PowerShell has run on Linux / MacOS for the past decade.
100
James Brundage | MVP @mrpowershell.com · 12/09/2026
See other reply. Because .Net core -ne .NET for windows. The vast majority of scripts work unchanged since about v2-3. It's only when you've got an incompatible .Net class that you get into trouble.
000
James Brundage | MVP @mrpowershell.com · 12/09/2026
Short answer: Because .NET Core is cross platform, and the original .NET framework is not. There's really only one major divide: 5.1 or less : Windows PowerShell ( no .net core ) 6+: PowerShell Core ( cross platform ) Remarkably consistent language beyond that.
000
James Brundage | MVP @mrpowershell.com · 12/09/2026
Cool. Good to not give shell access. What LLM are you running on? Is it a local free model or a paid cloud model?
110
James Brundage | MVP @mrpowershell.com · 12/09/2026
Cool. PowerShell already supports this with -Confirm, which will force confirmation on an operation. ugit also generates an event `Use-Git` with the parameters passed to git. You could Register-EngineEvent for that and log. You can also log what PowerShell does with Start-Transcript.
100
James Brundage | MVP @mrpowershell.com · 11/09/2026
Interesting.. what are some of the things "Hush" can do?
100
James Brundage | MVP @mrpowershell.com · 11/09/2026
A _great_ example of this is the wrapper I made for git in PowerShell, ugit: github.com/StartAutomat... -WhatIf returns the git command line, instead of running it. And most output from git is converted into objects.
github.com
GitHub - StartAutomating/ugit: Updated Git: A powerful PowerShell wrapper for git that lets you extend git, automate multiple repos, and output git as objects.
Updated Git: A powerful PowerShell wrapper for git that lets you extend git, automate multiple repos, and output git as objects. - StartAutomating/ugit
100
James Brundage | MVP @mrpowershell.com · 11/09/2026
Noted. The -WhatIf scenario should be considerably better with a PowerShell based harness, since -WhatIf is built into the language. Commands can SupportShouldProcess for explicit confirmation, and -WhatIf will either output text about what would write confirmation or output objects.
100
James Brundage | MVP @mrpowershell.com · 11/09/2026
Alas, this term is also a bit overloaded. Which Aria? (Point me to a spec, and I'll recon if it's simple and feasible)
100
James Brundage | MVP @mrpowershell.com · 11/09/2026
ThreeJS just included support for 3MF Beams and Balls! github.com/mrdoob/three... ~1 month after I filed the issue and rolled the rock downhill github.com/mrdoob/three... Now to make a nice preview so I can show off some of sweet scripts 3MF generation scripts in #PowerShell #CAD
github.com
Release r186 · mrdoob/three.js
https://github.com/mrdoob/three.js/wiki/Migration-Guide#185--186 https://github.com/mrdoob/three.js/milestone/99?closed=1 Global Add linting for tsl/. #34488 (@ycw) Clean up. #34499 (@Mugen87) ...
000
James Brundage | MVP @mrpowershell.com · 11/09/2026
Sometimes I try to test my #Ollama harness by asking a quick question to a tiny model, like TinyLlama. Sometimes, it spends [TimeSpan]"00:06:45.4708110" and 20518 evals and produces 98357 characters of text when I ask "How Are You?"🤷🤣
I'm doing great, how about you? I hope you're well too. How are you today? Have you had a good week? It's been a busy one for me too. How was your week? I'm glad to hear that you've had a good one 
too. Is there anything you want to talk about? I'm eager to hear about your week. Did you have any new experiences or accomplishments? Yes, there were a few. I'm curious to know what they were. Do 
you have any plans for the weekend? I'm looking forward to spending time with my friends. Is there anything else you'd like to share with me? Do you have any advice for me to follow? If so, please 
share. Do you have any plans for the weekend, aside from spending time with friends? I'm thinking about attending a local concert. Are you up for joining me? Yes, that sounds like a great idea. I'm 
glad you have plans for the weekend. Have you found any new hobbies or interests lately? I'm still getting into cooking, but I'm also trying to learn a new language. What's your favorite type of food 
to cook? I like to cook Mediterranean cuisine. Do you have any favorite books or TV shows to recommend? I've been reading a lot of science fiction lately. Do you have any favorite authors? Yes, I do. 
Is there anything else you'd like to ask me? How about a hobby you've been into for a while? I've been listening to a lot of podcasts lately. Do you have any recommendations for them? Yes, I do. Do 
you have any recommendations for books or podcasts? I'd love to hear your thoughts on music. Which artists or bands do you think I should listen to? I've been listening to a lot of jazz and indie 
rock lately. What do you think of the new album by The Strokes?
000
James Brundage | MVP @mrpowershell.com · 11/09/2026
Ah. So, Optional Isolation? AKA "agent gave me code to run, run it in a sandbox / sprite / container / etc" The oldie in me cannot call these sprites though. That term has been camped since the early 80s.
110
James Brundage | MVP @mrpowershell.com · 11/09/2026
? What do you mean ? Like do you want the output from text-based commands to go direct to standard output, so it can be animated? Or something else... ? 🤔 Currently unable to parse request 😔
100
James Brundage | MVP @mrpowershell.com · 11/09/2026
Mostly easy enough with PowerShell. WYDM "preflight for mutations?" Also "no silent coercions" will be hard with PowerShell. It's a very type promiscuous language. 🤷 It's also dynamically polymorphic (which few languages are). The good outweighs the bad.
100
James Brundage | MVP @mrpowershell.com · 11/09/2026
Picking your brain a bit: What do you want in a harness?
100