pwshguy (mdowst)

Father, author, blogger, enthusiast of all things PowerShell and automation.

  • 52 Posts
Joined 1 year ago
Cake day: June 8th, 2023


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

  • Just a heads up, I received confirmation from the product team that the AZUREPS_HOST_ENVIRONMENT environment variable is going away. They are moving the backend to containers. Also, the COMPUTERNAME one that was always “client” is going to change too. The COMPUTERNAME will now be “Sandbox-###” with # being random numbers. I started using the code block below in my runbooks to find if they are running in Azure or hybrid worker/locally. It accounts for the current and the updates that will be rolling out in the near future.

    $isHybridWorker = $true
    if (($env:computername) -eq "CLIENT") {
        $isHybridWorker = $false
    elseif ($env:USERNAME -eq 'ContainerAdministrator') {
        $isHybridWorker = $false

  • Typically, when I have a script I need to test locally, I’ll comment out the identity connection command and just authenticate outside of my script. If I’m feeling real fancy, I’ll write a try/catch to attempt to authenticate first as the managed identity then if it fails prompt me for credentials. Not the most elegant solution, but it works.

    try {
        Add-AzAccount -Identity -SubscriptionId $SubscriptionId -ErrorAction Stop | Out-Null
    catch {
        Add-AzAccount -SubscriptionId $SubscriptionId

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