Paul Naughton's Avatar

Paul Naughton

@tecknikp

Galway, Ireland https://pauljnav.github.io/ A #powershell #pester enthusiast #physics #cycling and more..

30
Followers
99
Following
68
Posts
12.12.2024
Joined
Posts Following

Latest posts by Paul Naughton @tecknikp

Octocat https://gist.github.com/jdhitsolutions

Octocat https://gist.github.com/jdhitsolutions

You might find useful #PowerShell snippets, code, or inspiration in my GitHub gists.

14.02.2026 17:48 πŸ‘ 6 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Cooking a major update to WinUIShell.

I've just finished fixing all the build errors caused by my C# source generator. Thanks to that, all WinUI3 controls will be supported in the next release. Yes, all of themπŸŽ‰

This example is one of my favorites, ContentDialog.

github.com/mdgrs-mei/Wi...

11.02.2026 12:13 πŸ‘ 7 πŸ” 5 πŸ’¬ 1 πŸ“Œ 0

While #Pester testing a #PowerShell function with Open-ExcelPackage -Create I ran into a little bother, always best to share the goodies we learn.
Draft available here:
github.com/pauljnav/pau...

15.02.2026 22:57 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
β€ŽGoogle Gemini Meet Gemini, Google's AI assistant. Get help with writing, planning, brainstorming and more. Experience the power of generative AI.

One to remember;
Gemini saved-info instructions

gemini.google.com/saved-info?h...

13.02.2026 16:28 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Extracting PowerShell Function Names with the AST As time goes by, we all find better ways of writing old code, such as changing an old script/function for the better.

blog posted covering progression of an AST based "Get-FunctionName"
Thank you to @mdgrs.bsky.social for input.

pauljnav.github.io/2026/02/08/U...

08.02.2026 17:58 πŸ‘ 2 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Extracting PowerShell Function Names with the AST As time goes by, we all find better ways of writing old code, such as changing an old script/function for the better.

blog posted covering progression of an AST based "Get-FunctionName"
Thank you to @mdgrs.bsky.social for input.

pauljnav.github.io/2026/02/08/U...

08.02.2026 17:58 πŸ‘ 2 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

draft updated, significant but still a draft - Ill finish and post tomorrow. Thank you @mdgrs.bsky.social for your review time and feedback.

github.com/pauljnav/pau...

06.02.2026 01:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

interesting, for a function to appear in the FunctionDefinitionAst, you only need this pattern:

function dosomething {

06.02.2026 00:33 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

A2:
Add basic syntax faults into "sample.ps1" and tests show it's ScriptBlockAst remains intact, and $ast.FindAll() continues to surface FunctionDefinitionAst for each filter/function that is defined in the parsed script.

FYI: $FunctionDefinitionAst | % Name
Get-SystemReport
Get-Timestamp
etc

06.02.2026 00:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

A1:
Testing shows a script that dot sources has a cvalid ScriptBlockAst and no FunctionDefinitionAst, ergo the filters/functions defined in a dot sourced file do not surface.
For $ast.FindAll() to surfaces a FunctionDefinitionAst, the function needs to be explicitly defined in the parsed script.

06.02.2026 00:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Thanks a lot... Great questions as your thinking about encountering the not happy path.
Testing in progress - answers shortly..

06.02.2026 00:11 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Hi @mdgrs.bsky.social
I have saved the draft to github. Feel-free to take a look and critique it.. thank you.

The core is what I want to show, earlier version worked, but was not as good as the later version (as time passes, we get better). And more checks in progress.

github.com/pauljnav/pau...

05.02.2026 17:12 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Appreciated, thank you.

04.02.2026 23:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Thanks for the like @mdgrs.bsky.social
I'm working on a blog post covering my iterations on this small function. Could I ask you for some review time on it when I get it ready ?

04.02.2026 18:48 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Improved PesterUtility\Get-FunctionName.ps1

Get-FunctionName can optionally search nested/child functions using the `IncludeNestedFunctions` switch parameter.

#PesterUtility

03.02.2026 13:46 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

πŸ“£ How we built the Codex agent loop

Ever wonder what Codex does between your prompt and its response?

Each turn assembles inputs, runs inference, executes tools, and feeds the results back into context until the loop ends

https://openai.com/index/unrolling-the-codex-agent-loop

23.01.2026 20:18 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Perfect ages for it.. Go have fun

Happy New Year James

03.01.2026 20:34 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Doug Finke on X: "Sipping cocktails in NYC πŸΈπŸ‡ΊπŸ‡Έ, kicking off the next milestone in my AI experiment with GitHub Copilot agent mode. From my phone. Building a PowerShell interpreter in Rust! πŸ¦€ Repo: https://t.co/puSuMrS8gd Object pipelines + memory safety? πŸš€ #PowerShell #Rust #AI" / X Sipping cocktails in NYC πŸΈπŸ‡ΊπŸ‡Έ, kicking off the next milestone in my AI experiment with GitHub Copilot agent mode. From my phone. Building a PowerShell interpreter in Rust! πŸ¦€ Repo: https://t.co/puSuMrS8gd Object pipelines + memory safety? πŸš€ #PowerShell #Rust #AI

@andrewpla.tech something is rocking here
x.com/i/status/200...
Finke is at it.....

03.01.2026 20:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

WhatsApp AI is too funny.

01.01.2026 18:18 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

β€œUNLESS someone like you cares a whole awful lot, nothing is going to get better.
It's not.”
Dr Seuss

The Lorax cradles planet Earth, surrounded by a bleak and broken environment illustrates the message that UNLESS we care to save our planet, our home will be forever harmed by the greedy few.

29.12.2025 19:13 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

oh yea.. love a deep dive

16.12.2025 22:35 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
The Cmdlet Decision: When to Be Weird I’ve spent a lot of time, and acquired a lot of scar tissue, in this industry, and if there is one thing I’ve learned, it’s that most people are terrified of looking different. People hug the cente…

Ever wonder why we call them "Cmdlets" in PowerShell instead of just "Commands"?
www.jsnover.com/blog/2025/12...

#PowerShell

11.12.2025 17:29 πŸ‘ 25 πŸ” 11 πŸ’¬ 4 πŸ“Œ 3
Preview
The Cmdlet Decision: When to Be Weird I’ve spent a lot of time, and acquired a lot of scar tissue, in this industry, and if there is one thing I’ve learned, it’s that most people are terrified of looking different. People hug the cente…

"have the courage to be weird!"

We as #PowerShell users benefit from a relatively noise-free search environment because of Jeffrey's decision and his skills at moving it all forward.

Thanks @jsnover.com

www.jsnover.com/blog/2025/12...

11.12.2025 18:34 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

20 days to go! If you have an idea worth sharing, now is the moment to shape the #PSConfEU 2026 agenda.

✍️ Submit: sessionize.com/psconfeu26

#PowerShell #IT #Germany #Europe #Wiesbaden #Automation

24.11.2025 11:00 πŸ‘ 0 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

@cloudflare.social you ok mate?

18.11.2025 14:37 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Output redirection uses $OutputEncoding.

Love such insights from @mrpowershell.com

15.11.2025 11:18 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Secure AI Chat with PowerShell: No API Key in Plain Sight πŸ”‘ I’ve just published a new PowerShell function, Send-AIChat.ps1, designed for easily interacting with AI APIs. While the function itself simplifies the API call, its most critical feature I’m demonstra...

Someone might take joy from a bit of simple secret handling
pauljnav.github.io/2025/11/13/S...

14.11.2025 11:50 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

You've been waiting for it, and now it’s here!
The sponsorship brochure for #PSConfEU 2026 is out.

πŸ“¦ 4 packages give you the widest range of opportunities!

πŸ‘‰ psconf.eu/wp-content/upload...

#automation #IT #Wiesbaden #Germany #PSConfEU

29.10.2025 16:45 πŸ‘ 2 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0
Preview
export Command exports the list of installed applications.

learn.microsoft.com/en-us/window...

05.11.2025 17:47 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

winget, the Windows package manager has an export command:
`winget export mypks.json`

Your welcome...

05.11.2025 17:43 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0