James Brundage | MVP
@mrpowershell.com
Jack of all Trades, Master of PowerShell.
Prolific Programmer
Microsoft MVP in Azure / PowerShell
https://mrpowershell.com/
https://github.com/StartAutomating
https://github.com/PowerShellWeb
NB, Neurodivergent, Nerdy, Newsjunkie.
Ask me anything.
Prolific Programmer
Microsoft MVP in Azure / PowerShell
https://mrpowershell.com/
https://github.com/StartAutomating
https://github.com/PowerShellWeb
NB, Neurodivergent, Nerdy, Newsjunkie.
Ask me anything.
I don't see it going anywhere.
The timeline on languages is _long_.
Basic "dying" took somewhere between the 1980s and now.
PowerShell came out in 2006.
I'd say we have at least 40 years.
Also realizing with some horror:
#PowerShell will outlive me
Our languages will outlive us
😱
The timeline on languages is _long_.
Basic "dying" took somewhere between the 1980s and now.
PowerShell came out in 2006.
I'd say we have at least 40 years.
Also realizing with some horror:
#PowerShell will outlive me
Our languages will outlive us
😱
a painting of a man screaming with the words sherlockspeare tumblr underneath it
Alt: Languages last a long time. Basic was only just now deprecated, after four decades as part of the operating system.
C is still going strong. It's creator, Dennis Ritchie, died in 2011.
PowerShell came out in 2006, and turns 19 this week.
( they grow up so fast )
Our languages will outlive us.
They outshine us.
It's beautiful and it's crazy, and it humbles the mind and ego.
media.tenor.com
November 11, 2025 at 6:42 AM
I don't see it going anywhere.
The timeline on languages is _long_.
Basic "dying" took somewhere between the 1980s and now.
PowerShell came out in 2006.
I'd say we have at least 40 years.
Also realizing with some horror:
#PowerShell will outlive me
Our languages will outlive us
😱
The timeline on languages is _long_.
Basic "dying" took somewhere between the 1980s and now.
PowerShell came out in 2006.
I'd say we have at least 40 years.
Also realizing with some horror:
#PowerShell will outlive me
Our languages will outlive us
😱
Just wrap it in a list expression @($table.keys).
List expressions are very useful for when you want to force things to be an array.
List expressions are very useful for when you want to force things to be an array.
a man wearing glasses and a bow tie has the words incredibly useful on his face
Alt: List array operators in PowerShell are incredibly useful.
By the way, I highly recommend this subject of this gif: The History Guy on YouTube.
media.tenor.com
November 11, 2025 at 6:17 AM
Just wrap it in a list expression @($table.keys).
List expressions are very useful for when you want to force things to be an array.
List expressions are very useful for when you want to force things to be an array.
Strangely / sadly no.
Basically keys is a enumerable, not indexable.
Because .keys could change at any time.
To work around this, force into an array.
@($table.keys)[0]
You might also enjoy using this range indexing #PowerShell #Trick:
$table[$table.Keys -match 'pattern']
Hope this helps!
Basically keys is a enumerable, not indexable.
Because .keys could change at any time.
To work around this, force into an array.
@($table.keys)[0]
You might also enjoy using this range indexing #PowerShell #Trick:
$table[$table.Keys -match 'pattern']
Hope this helps!
November 11, 2025 at 1:55 AM
Strangely / sadly no.
Basically keys is a enumerable, not indexable.
Because .keys could change at any time.
To work around this, force into an array.
@($table.keys)[0]
You might also enjoy using this range indexing #PowerShell #Trick:
$table[$table.Keys -match 'pattern']
Hope this helps!
Basically keys is a enumerable, not indexable.
Because .keys could change at any time.
To work around this, force into an array.
@($table.keys)[0]
You might also enjoy using this range indexing #PowerShell #Trick:
$table[$table.Keys -match 'pattern']
Hope this helps!
💯
Bonus points for #PowerShell #requires :
You can easily detect this with the AST and auto-install the module in a #GitHub #Workflow.
~~~PowerShell
(Get-Command ./SomeScript.ps1).ScriptBlock.Ast.ScriptRequirements
~~~
Bonus points for #PowerShell #requires :
You can easily detect this with the AST and auto-install the module in a #GitHub #Workflow.
~~~PowerShell
(Get-Command ./SomeScript.ps1).ScriptBlock.Ast.ScriptRequirements
~~~
November 10, 2025 at 9:16 PM
💯
Bonus points for #PowerShell #requires :
You can easily detect this with the AST and auto-install the module in a #GitHub #Workflow.
~~~PowerShell
(Get-Command ./SomeScript.ps1).ScriptBlock.Ast.ScriptRequirements
~~~
Bonus points for #PowerShell #requires :
You can easily detect this with the AST and auto-install the module in a #GitHub #Workflow.
~~~PowerShell
(Get-Command ./SomeScript.ps1).ScriptBlock.Ast.ScriptRequirements
~~~
Because of the #PowerShell or because of the #MacOS?
November 10, 2025 at 7:48 PM
Because of the #PowerShell or because of the #MacOS?
Honestly haven't cracked open a Publisher file in some time.
A brief bit of recon reveals it is not a zip file in a trenchcoat 🤔
I don't know of any API off the top of my head, but there _might_ be a COM api.
Looking forward to seeing what you produce.
Glad I don't use publisher 😉
A brief bit of recon reveals it is not a zip file in a trenchcoat 🤔
I don't know of any API off the top of my head, but there _might_ be a COM api.
Looking forward to seeing what you produce.
Glad I don't use publisher 😉
November 9, 2025 at 8:45 PM
Honestly haven't cracked open a Publisher file in some time.
A brief bit of recon reveals it is not a zip file in a trenchcoat 🤔
I don't know of any API off the top of my head, but there _might_ be a COM api.
Looking forward to seeing what you produce.
Glad I don't use publisher 😉
A brief bit of recon reveals it is not a zip file in a trenchcoat 🤔
I don't know of any API off the top of my head, but there _might_ be a COM api.
Looking forward to seeing what you produce.
Glad I don't use publisher 😉
November 9, 2025 at 8:20 PM
Verbs aren't types.
Types are types.
Verbs ain't nothing but a part of speech and a naming convention.
Types are types.
Verbs ain't nothing but a part of speech and a naming convention.
November 8, 2025 at 6:37 PM
Verbs aren't types.
Types are types.
Verbs ain't nothing but a part of speech and a naming convention.
Types are types.
Verbs ain't nothing but a part of speech and a naming convention.
We did.
It's called #PowerShell, and it can work with all #DotNet types ( which can work with all C types).
We even gave you an inline compiler with Add-Type.
Stop trolling and try the thing...
Ignorance -ne Bliss
It's called #PowerShell, and it can work with all #DotNet types ( which can work with all C types).
We even gave you an inline compiler with Add-Type.
Stop trolling and try the thing...
Ignorance -ne Bliss
November 8, 2025 at 6:36 PM
We did.
It's called #PowerShell, and it can work with all #DotNet types ( which can work with all C types).
We even gave you an inline compiler with Add-Type.
Stop trolling and try the thing...
Ignorance -ne Bliss
It's called #PowerShell, and it can work with all #DotNet types ( which can work with all C types).
We even gave you an inline compiler with Add-Type.
Stop trolling and try the thing...
Ignorance -ne Bliss
I know this is some trolling, but I have to point out the irony of saying things on the internet, which was basically built atop shell languages like #Perl (because your browser is a fancy shell for the https protocol).
So yeah, use a "real" language. "Fake" ones built the internet.
So yeah, use a "real" language. "Fake" ones built the internet.
November 8, 2025 at 1:46 AM
I know this is some trolling, but I have to point out the irony of saying things on the internet, which was basically built atop shell languages like #Perl (because your browser is a fancy shell for the https protocol).
So yeah, use a "real" language. "Fake" ones built the internet.
So yeah, use a "real" language. "Fake" ones built the internet.
And also made a quick and dirty #Math #MathML #PowerShell module:
github.com/PowerShellWe...
Should round my way back to that...
github.com/PowerShellWe...
Should round my way back to that...
GitHub - PowerShellWeb/MathML: PowerShell and MathML
PowerShell and MathML. Contribute to PowerShellWeb/MathML development by creating an account on GitHub.
github.com
November 7, 2025 at 9:26 PM
And also made a quick and dirty #Math #MathML #PowerShell module:
github.com/PowerShellWe...
Should round my way back to that...
github.com/PowerShellWe...
Should round my way back to that...
Made a really quick and dirty simple module for Vectors.
Should update it with a logo:
github.com/PowerShellWe...
Should update it with a logo:
github.com/PowerShellWe...
GitHub - PowerShellWeb/Vector: Vectors in PowerShell
Vectors in PowerShell. Contribute to PowerShellWeb/Vector development by creating an account on GitHub.
github.com
November 7, 2025 at 9:25 PM
Made a really quick and dirty simple module for Vectors.
Should update it with a logo:
github.com/PowerShellWe...
Should update it with a logo:
github.com/PowerShellWe...
Started to crack open the mouth of madness that is #PowerShell and #OpenXML (manipulating #Word, #Excel, and #PowerPoint):
github.com/PowerShellWe...
github.com/PowerShellWe...
GitHub - PowerShellWeb/OpenXML: Automate OpenXML with PowerShell
Automate OpenXML with PowerShell. Contribute to PowerShellWeb/OpenXML development by creating an account on GitHub.
github.com
November 7, 2025 at 9:24 PM
Started to crack open the mouth of madness that is #PowerShell and #OpenXML (manipulating #Word, #Excel, and #PowerPoint):
github.com/PowerShellWe...
github.com/PowerShellWe...
Also got a few small modules out....
In order of recency, we've got Glass, which was meant to help find #Glassware #Glassworm messages in files or packages, and help people understand the vector:
github.com/StartAutomat...
In order of recency, we've got Glass, which was meant to help find #Glassware #Glassworm messages in files or packages, and help people understand the vector:
github.com/StartAutomat...
GitHub - StartAutomating/Glass: Glass is a module for seeing thru invisible characters
Glass is a module for seeing thru invisible characters - StartAutomating/Glass
github.com
November 7, 2025 at 9:23 PM
Also got a few small modules out....
In order of recency, we've got Glass, which was meant to help find #Glassware #Glassworm messages in files or packages, and help people understand the vector:
github.com/StartAutomat...
In order of recency, we've got Glass, which was meant to help find #Glassware #Glassworm messages in files or packages, and help people understand the vector:
github.com/StartAutomat...
@tangled.org the least I'll be able to do for now is add you tangled to the site list I support for an upcoming overpowered packaging project.
Sadly, without support for sparse clones, this won't work _quite_ as smoothly as it will for github.
(I want people to be able to copy/paste a tree path)
Sadly, without support for sparse clones, this won't work _quite_ as smoothly as it will for github.
(I want people to be able to copy/paste a tree path)
November 7, 2025 at 8:10 PM
@tangled.org the least I'll be able to do for now is add you tangled to the site list I support for an upcoming overpowered packaging project.
Sadly, without support for sparse clones, this won't work _quite_ as smoothly as it will for github.
(I want people to be able to copy/paste a tree path)
Sadly, without support for sparse clones, this won't work _quite_ as smoothly as it will for github.
(I want people to be able to copy/paste a tree path)