Skip Navigation

User banner
pwshguy (mdowst)
pwshguy (mdowst) @ pwshguy @programming.dev
Posts
82
Comments
26
Joined
3 yr. ago

Powershell @programming.dev

PowerShell Weekly for December 19, 2025 (Last one for 2025)

Powershell @programming.dev

PowerShell Weekly for December 12, 2025

Powershell @programming.dev

PowerShell Script to Detect Code Impacted by the Invoke-WebRequest Breaking Change

Powershell @programming.dev

Saving Christmas with PowerShell: Building a Reusable Matching Algorithm

Powershell @programming.dev

PowerShell Weekly for December 5, 2025

Powershell @programming.dev

PowerShell Weekly for November 28, 2025

Powershell @programming.dev

PowerShell Weekly for November 21, 2025

Powershell @programming.dev

PowerShell Weekly for November 14, 2025

Powershell @programming.dev

PowerShell Weekly for November 7, 2025

Powershell @programming.dev

Get-TrickOrTreat.ps1 - A harmless little Halloween prank script

Powershell @programming.dev

PowerShell Weekly for October 31, 2025

Powershell @programming.dev

PowerShell Weekly for October 24, 2025

Powershell @programming.dev

PowerShell Weekly for October 17, 2025

Powershell @programming.dev

PSConfEU MiniCon is Today! And Free!

Powershell @programming.dev

PowerShell Weekly for October 10, 2025

Powershell @programming.dev

PowerShell Weekly for October 3, 2025

Powershell @programming.dev

PowerShell Weekly for September 26, 2025

Powershell @programming.dev

PowerShell Weekly for September 19, 2025

Powershell @programming.dev

PowerShell Weekly for September 12, 2025

Powershell @programming.dev

PowerShell Weekly for September 5, 2025

  • PowerShell does not have a built in PDF reader, so it is not possible without installing a module or calling a third party app. The PSWritePDF module will do what you are asking. The module can be installed from the gallery, so you could technically install and import it in a single line.

  • An external USB monitor. It's old so it's actually only a USB 2.0.

  • Either my wife or I will bust out "Bye, Felicia" at least once a week.

  • The Taco Bell jingle has lived rent free in my head for 20 years now

  • Thanks! That's why it takes so long between my videos coming out. That and I have a full time job, 2 kids, coach my daughter's soccer team, and suck at video editing.

  • Mine is definitely a passion project. I make videos on automation using PowerShell. I aim to make videos that teach the thought process and fundamentals and not just step by step tutorials. I've been busy moving halfway across the country but plan to start uploading some more once I'm settled in two weeks.

    https://youtube.com/@DowstDevMvp

  • 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 to Write-Verbose. Here is a great explanation when to use Write-Host vs other outputs.

    There are also numerous Write-Output commands in the script. Anything sent to the Write-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 the New-Item commands in there too, as they will produce output. You might consider saving them to a variable or piping to Out-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 use throw. 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.

  • 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.

  • I 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%.

  • For some reason their API would not return anything for assembly. I was curious to see where it would rank too,

  • Biggest things I'm seeing is CVE-2023-21709 for Exchange requires a PowerShell script to be run after patching. Also, CVE-2023-29328/29330 for Teams affect all devices (Windows, Mac, iOS, and Android).

  • The book I wrote. When I first talked with the publisher he asked, "what skills would you look for in someone who wants to do your job?" And that's the premise I stuck with writing it.

  • I feel down a rabbit hole, a few years ago wonder the same thing about C#. Here is what I found.

    • C# was developed in 2000 as a successor to C++. Doubling the ++ to a #.
    • C++ was developed in the early 80s as a successor to C. Adding plus (+) to a name was a common way of indicating it was an enhancement. Also ++ is the incrementing operator for C.
    • C was developed in the early 70s as a successor to the B programming language. C comes after B.
    • B was developed in 1969 and was derived from the BCPL language. Basically, B was a stripped down version of BCPL.
    • BCPL (Basic Combined Programming Language) was developed in 1967 and was a designed as an simpler version of CPL.
    • CPL (Combined Programming Language) was developed in the early 60s at Cambridge. The original name was "Cambridge Programming Language" but was changed to Combined when it was published jointly with the University of London.
  • Interesting. As someone who mainly deals in PowerShell, this is very similar to the Where-Object clause and could save me some headaches when I need to work in Python.

  • From personal experience, it seems like things outside of your normal listening don't affect too much. At least in my case, my daughter making me play the Encanto soundtrack 250,000 times hasn't affected my weekly or daily playlists.

  • That's pretty similar with what happened with me and the train. Kept getting random drops from a plant. I went out to investigate and everything tested perfect and the network was staying up. That was until a freight train rolled by. Turns out AT&T had run the line by shoving a piece of PVC through the gravel between two cross-ties, then running the cable through it.

  • I've actually had an excavator take out my network. I've also had networks taken out by forklift, train, and a semi-truck towing three other semi-trucks.

  • Basically every Windows sysadmin is indebted to Mark Russinovich and SysInternals. Fortunetly, PowerToys has come a long way because I'm pretty sure sysinternals haven't been updated since Windows XP.