pwshguy (mdowst)
Father, author, blogger, enthusiast of all things PowerShell and automation. http://linktr.ee/mdowst
- 98 Posts
- 56 Comments
No Azure DevOps automatically increments it every time you run the pipeline.
Just looking at it from the point of view of making the script more portable and easier for someone else to run, there are a few things I would address.
The first is the
Write-Host
commands all over the script. I would recommend converting those toWrite-Verbose
. Here is a great explanation when to useWrite-Host
vs other outputs.There are also numerous
Write-Output
commands in the script. Anything sent to theWrite-Output
will be returned to the calling console. If you need to take additional actions based on the results of this script, this could cause issues. You can run into problems with theNew-Item
commands in there too, as they will produce output. You might consider saving them to a variable or piping toOut-Null
.Also, there is no need to call exit and set an exit code in the way you are. If you want to write and error but have the script continue you can use,
Write-Error
. If you want the processing to terminate then usethrow
. Doing it this way will allow PowerShell’s built-in error handling to take care of the exit codes. It will also give you greater flexibility with using Error Action Preferences and using try/catch statements.Finally, you have a path hardcoded for the workingDir. I would suggest making this a parameter or using an environment variable as this will make it more portable. Also, when creating the log variable, you will want to use the Join-Path cmdlet instead of just joining strings.
This one in particular takes around an hour to run. It deploys a bunch of resources to Azure and runs a all of our integration tests. It does a complete wipe and redeploy each time, so it takes a while. Fortunately, this pipeline is only run as a final test before prompting to production, so normally I only run it once a month or so. While it’s running I’ll work on my pull requests, release notes, closing user stories, etc.
That’s why half of my pipelines are just scripts now, so I can run large chunks of them locally. But yeah, commit, test, commit, test, commit, test drive me insane.
Yes, there is oh-my-posh
Community
- Kubernetes is Easy with Anthony Nocentino
In this episode of the PowerShell Podcast, we sit down with Anthony Nocentino, a Senior Principal Field Solution Architect at Pure Storage, to dive deep into the world of Kubernetes. Anthony breaks down what Kubernetes is and how it fits into the modern IT landscape. We explore his fascinating career journey, from consulting and SQL Server to educating the masses on Kubernetes and Linux. Anthony also shares invaluable insights on becoming a force multiplier in your career and the critical role of mentorship and offers sage advice for anyone looking to elevate their professional path. - PSSaturday Karlsuhe Call for Speakers
We are excited to announce that we are looking for speakers for the upcoming PSSaturday in Germany this November! Whether you’re a first-time speaker or an experienced presenter, we welcome you to share your ideas. If you have an interesting topic and are willing to speak for up to 45 minutes, we want to hear from you.
- Kubernetes is Easy with Anthony Nocentino
Projects, Scripts, and Modules
- PowerShell - IntelliJ IDEs Plugin
Provides PowerShell code completion and script execution support for IntelliJ IDEs.
Books, Media, and Learning Resources
- Build a Superfast Research Assistant using PowerShell and AI
In this episode, I’ll show you how to combine PowerShell with AI to automate tasks, chat with your data, and build intelligent agents—all within your console and scripts. - Interactive Data at Your Fingertips: PowerShell AI Converts Data to Interactive HTML
Transform your data with PowerShell and AI. In this video, Doug Finke, a 15x Microsoft MVP, shows how to use the PSAI module to convert Excel and CSV files into interactive HTML pages. You’ll learn how to sort and interact with your data directly in your browser using the newConvertTo-InteractiveHTML
function. Doug walks through generating HTML tables with sortable columns and customizing them using AI. Whether you’re managing large datasets or need a quick way to visualize your data, this tutorial will guide you through the process. Install the PSAI module and start making your data more dynamic. - How To PowerShell Code in Docker Containers
In this video, we guide you through the process of installing and running Docker using PowerShell on Windows. Whether you’re a beginner or an experienced developer, this step-by-step tutorial will help you get Docker up and running quickly and efficiently.
- PowerShell - IntelliJ IDEs Plugin
pwshguy (mdowst)to Piracy@lemmy.ml•Probably my first piracy experience (it was great)English11·9 months agoI remember before scrambling they just put blocks that prevented you from going to certain channels. I somehow figured out if you ran the cable box through the VCR first and put it on channel 2 while the TV was still on 3, it would shift all the channels down one. Cinemax was channel 14, which our box just would not go to. But it would go to 13, so doing my little trick teenage me got to watch a lot of skinamax.
It took me longer than I would have liked, but I did finally get the next video uploaded. I hope you enjoy it as well.
Projects, Scripts, and Modules
- 365AutomatedLab and new companion module coming soon
365AutomatedLab and new companion module coming soon I promise I haven’t forgotten about 365AutomatedLab, but I’ll be honest after Microsoft made the announcement of no more new Dev tenants it hurt a bit as I know how useful they are on learning and testing features and PowerShell without hurting your production environment. - How to Create SharePoint List & Add Columns Using PnP PowerShell?
Recently, I developed one Power Apps application that needed a SharePoint list data source. Before running the application, the client must create the specific SharePoint list on their site. So, I wrote a Power Shell script to create the SharePoint list along columns to avoid mistakes when creating it manually. - PowerShell-Yayaml v0.5.0
What’s changed… - PSDates v1.0.4
Tons of new stuff added including calculating sunrise and sunset time.
Books, Media, and Learning Resources
- PowerShell Conference EU 2024 - Full playlist
Check out all the sessions from this years PowerShell Conference EU.
Community
- Behind the Scenes at PSConf.EU: Harm Veenstra’s Experience and Insights
In this episode of the PowerShell Podcast, we sit down with Microsoft MVP Harm Veenstra to discuss his exciting experiences at PSConf.EU, where he attended for the first time and embarked on a new journey into public speaking. Harm shares his thoughts on receiving the prestigious Microsoft MVP award and delves into his recent projects, including creating a TCP/UDP listener for testing firewall ports and using a Pi-hole to block ads on his home network. We also explore his perspectives on automation in the MSP world, the power of Microsoft Graph, and why he hasn’t yet adopted AI tools. Tune in for an engaging conversation filled with insights, tips, and highlights from PSConf.EU! - Write Code, Write Blogs: Lessons with Brock Bingham
In our latest Powershell Podcast episode, we chat with Brock Bingham. We explore his transition from sysadmin to writer and his viewpoint of coding as creative problem-solving. Brock also shares insightful blogging tips and advises against the pitfalls of comparison. A must-listen for aspiring PowerShellers. (plz create a blog and share your learnings for future you)
- 365AutomatedLab and new companion module coming soon
pwshguy (mdowst)Mto Powershell•PowerShell: the object-oriented shell you didn’t know you needed | Chris Warrick | 29 April 20243·10 months agoNice write up, and a great primer for someone coming from the Linux/Bash world.
Thanks! I’d love to hear your thoughts once you’ve watched it.
Community
- PipeScript, Formatting, and Docker: An In-Depth Conversation with James Brundage
In this episode of the PowerShell Podcast, we are joined by Microsoft MVP, former PowerShell team member, and module maker extraordinaire James Brundage. We hear about his experience at Microsoft Build, learn all docker and kubernetes while discussing his Rocker module, UserGroup updates, implicit interpretation in Pipescript, formatting and types, and so much more. Strap in because we go deep in this one. - Breaking Down ModuleFast and More with Justin Grote
In this episode of the PowerShell Podcast, host Andrew Pla interviews Microsoft MVP and PowerShell aficionado Justin Grote. They delve into an issue in the Az.Accounts 3.0.0 module, with Justin offering insights and a workaround (use an earlier version of the module). Justin also discusses his innovative ModuleFast project, explaining its architecture and his approach to writing PowerShell scripts and modules. The conversation highlights Justin’s passion for APIs and celebrates his contributions as an official PowerShell project contributor. Listeners get a glimpse into Justin’s workflow working at a Managed Service Provider (MSP) and how he writes to much PowerShell. He offers valuable advice for those early in their careers. Additionally, Justin shares updates on his PowerHTML (1.2m downloads) project, which originated from a GitHub pull request, showcasing his continuous contributions to the PowerShell community. - PowerShell Community Call - May 16th, 2024
Last month’s community call with the PowerShell team.
- PipeScript, Formatting, and Docker: An In-Depth Conversation with James Brundage
Books, Media, and Learning Resources
- PowerShell Scripting and Toolmaking
At long last I’ve updated the content of the PowerShell Scripting and Toolmaking book from Leanpub. Get the book and you get future updates for free. - Mastering PowerShell Scripting - Fifth Edition
Automate repetitive tasks and simplify complex administrative tasks using PowerShell - Send Emails with SendGrid and PowerShell [OC]
Learn how you can quickly and easily send emails from PowerShell with SendGrid. - Customize your Windows Sandbox with PowerShell
Today we’re going to go a bit deeper into Windows Sandbox by walking through custom configurations with PowerShell. - Automate Network Security Testing using PSTcpIp with Anthony Guimelli
Join Tony Guimelli for look at how you can automate the arduous process of network security testing using PowerShell and the PSTcpIp module.
- PowerShell Scripting and Toolmaking
Projects, Scripts, and Modules
- passwordstate-management v 4.4.49
Powershell Module for managing Password State - PowerQualys v 0.3.0
Helper module for Qualys - WinTuner v 0.8.9
Package and publish any apps from WinGet to Intune. - Interpreting Audit Records for Teams Meeting Recordings (Again)
Three years ago, I wrote a script to analyze the audit records generated for Teams meeting recordings. Then things changed in terms of how the audit records were generated and how the Search-UnifiedAuditLog cmdlet returns audit search results. All of which meant that considerable work was needed to revamp (rewrite) the script. Maybe you need to check any script that uses the Search-UnifiedAuditLog cmdlet too? - tiPS v 1.3.10
PowerShell tips delivered straight to your terminal.
- passwordstate-management v 4.4.49
Thanks! I’m glad to hear you are finding it useful.
Thanks! I’m glad to hear others are finding it useful.
If I understand correctly, the signatures generated by PuTTY aren’t perfectly random, so if someone got a hold of a bunch of keys from a server, they could figure out the pattern. It takes about 60 keys. This affects not just PuTTY, but also FileZilla, WinSCP, TortoiseGit, and TortoiseSVN.
In other words if you have NIST P-521 keys, or any others using 521-bit ECDSA, you should revoke them and generate new key pairs. After you update your software.
pwshguy (mdowst)to Programming Languages•January 2024 monthly "What are you working on?" thread4·1 year agoI installed some security cameras around my house and set up Shinobi using an old PC. Unfortunately the PC is too old to use the built-in detectors in Shinobi. So, I took my first dive into playing around with some image detectors.
I wrote some python to download the daily recording from old PC to a newer one with a 3080 GPU. Then checks the videos for people. It will then trim the videos to only include times were there are people in frame. It cut my the storage requirements by over 95%.
Projects, Scripts, and Modules
The Office365ITPros GitHub repository holds over 300 PowerShell scripts showing how to interact with Microsoft 365 and Entra ID. Anyone can contribute to Office365ITPros by forking the code to a copy of the repository and making changes to scripts there. If you want, you can push the changes back to us so that we can consider their inclusion in Office365ITPros. It’s a great example of community in action.
Here is a PowerShell script that will create Bootable Media for ConfigMgr.
Unofficial installer, runner and utilities for pipenv.
Books, Media, and Learning Resources
Learn how to create powerful PowerShell modules from scratch by building a computer inventory tool. Perfect for sysadmins who need custom automation solutions.
Join me as I show off how to use PowerShell Universal to create APIs using dbatools to get at your SQL Instance and databases information.
Community
In this episode of the PowerShell Podcast, Andrew catches up with returning guest Adam Bacon. Adam shares an update on his career and shares how PowerShell has played a huge role in helping him accomplish his dream.
In this episode of the PowerShell Podcast, we sit down with Fred Weinmann, a prolific PowerShell module creator, to explore his remarkable contributions, including PSFramework, PSModuleDevelopment, PSUtil, and PSFramework.Nuget. Fred shares insights on developing impactful solutions, such as the KRBTGT module and the evolution of module development in large-scale environments.
Events
April 7-10, 2025 Bellevue, WA