Powershell is a horrible abortion, what the hell do people see in it? I mean that on a language level, I cant speak for Windows specific features.
I have once written a simple script to copy a folder recursively to a fileshare, rename some stuff, edit some files. Took me 4-5 hours.
I then did it with julia in 30 minutes and I never did anything in either language before that.
It's insane the kind of weird language crap you have to deal with, the weird options that some functions need and worst of all: That the functions have weird problems, like I dont remember the specifics but I'm pretty sure that the folder copy function had no option to actually recursively copy all of them. I had to work around that. Then I had to work around some more specifics around file/folders.
In a normal language you would just call something like "copyFolder(srcPath, dstPath, recursive: true)" nope.
I wouldn't go so far as to call it a "horrible abortion" - but it can be painful to use at times. I manage several Azure environments with PowerShell and not a day goes by that I don't wish there was something better. Especially on those days when I have to dig into Azure's JSON templates.
There is an SDK for Python, but I haven't had an opportunity to try it. If anyone has used it I would love to hear about your experience.
Linux ecosystem has a huge amount of different tools and scripts for most of the situation that you can imagine. I'm working with Linux more than 14 years, so I can say that text processing idea is the best way. It's pure KISS principle. If you need just to see something - type a command, for complex operations - awk/perl/python. PowerShell looks ugly because it's something between a programming language and shell. It's not KISS. It's all in one tool.
There are the Azure REST APIs that you can curl. Or the Azure-CLI on Linux and Windows.
That said, I've noticed that powershell seems to get priority with Azure support before the azure-Cli client, so there are a few gaps here and there. I've been told that the Azure REST APIs are all in step with Powershell support, but sometimes go in documented unfortunately.
To be honest, I prefer PS to the Azure CLI but I have had to resort to the CLI on a couple of occasions. If I remember correctly it was to reset credentials on a VM (which wasn't possible with PS at the time). I guess the main problem with the CLI is that it's not a shell or a general purpose programming language.
The Azure REST API requires a ton of deeply nested JSON data structures. Take a look at this [1] sample. I just can't bring myself to work with that every day.
I really need to buckle down and try that python API.
Azure CLI, Azure PowerShell and even the portal are nothing more than API clients. You can capture traffic while working with any of them and see it for yourself.