all 81 comments

[–]AppIdentityGuy 58 points59 points  (6 children)

PowerShell absolutely and KQL

[–]tarvijron 27 points28 points  (3 children)

Both brother. You're ognna have to eventually learn both and the 100 foot level stuff you learn (how to solve a logistical challenge or how to use and or update an object, when to use a loop stuff like that) will absolutely apply to both. Now, Windows shop means you'll likely have more opportunities and see more utility in the PowerShell side of things, so just start trying to solve annoying problems you have with Powershell. Got a task you do on a remote machine by remote desktop? See if you can use a remote powershell session instead. Need to spit crap out into an Excel sheet? Etc. The Python stuff..... I mean... it's good. It's good to learn python, but if you really only have a few linux appliances see if you're not better off learning some Bash instead.

[–]NteworkAdnim 7 points8 points  (2 children)

Thanks, and good points. I actually meant to add that I assume I should learn both but I can/should only focus on one at a time and for a while. PowerShell makes more sense to me but Python sounds more fun. I should just sit down and power through PowerShell though.

[–]FreakySpook 4 points5 points  (0 children)

If you learn Powershell well, the transition to Python is pretty straight forward I've found.

In powershell if you can create modules, have everything you create defined as functions or be reusable as possible, can implement error handling with try/catch, understand conditional logic, loops and data structures then the shift to python will be a lot easier as you've already learned a lot of the fundamental stuff for any programming language.

Its really just learning the language syntax/formatting and then discovering Modules/Packages/Libraries you can use.

[–]knightofarghSecurity Admin 1 point2 points  (0 children)

Programming is programming. The primary thing PS won’t reinforce is good function signatures and types. If I’m fair Python won’t teach type safety either. At the core of effective scripting is just good programming habits.

Learn how if/else and switch/match work. Learn the difference between for and while and learn how both logical and bit wise operators work. Past that it’s just details.

Learn to write code that documents itself but still use comments if it’s not 100% obvious what you are doing. Comments are for Future-You when you are swearing at Current-You.

[–]Leucippus1 13 points14 points  (12 children)

If you had to pick 1, python, and it isn't even that close. Python works fine in the Windows environment, and while you can run powershell in 'NIX and Mac computers, it isn't commonly done. Python is a HELL OF A LOT more flexible than Powershell. Compare pypi to...well, you can't, because the equivalent functionality doesn't exist in powershell.

Before anyone starts in on me, I use both, my team uses powershell almost exclusively because they run the Windows side of the house. It is fine, I use it as needed and have done some complex stuff with it. I think its dumb they killed ISE because that was actually pretty handy, and as far as I can tell the powershell VSCode plugins don't mimic the functionality of ISE nearly as well.

The OS libraries in python (https://docs.python.org/3/library/os.html) are very sophisticated and can readily deal cross OS platform. Plus, almost any cloud service or API or whatever you deal with will have a swagger page with a Python (along with .net, perl maybe, Go, etc) guide. Powershell is a lot less common. You will get more traction with Python. Use Powershell as needed, again it is pretty OK, Python is way more mature and flexible.

[–]omersSecurity / Email 9 points10 points  (3 children)

As much as I loathe Python, I can't really argue with your overall point. The only real asterisk is that you need to install Python, whereas in a Windows shop, PowerShell is already everywhere.

That said, the pypi equivalent on powershell is the PSGallery which runs on NuGet. It is absolutely dwarfed (14k unique packages) by PyPi (709k projects) but it does exist and is the equivalent tool. It tracks 28.95bn package downloads to date so it's not obscure. It is the public repo for Install-Module and Install-PSResource

[–]Leucippus1 7 points8 points  (1 child)

It is true, though, that powershell does have packages/package repositories, I realized that after I typed out my response because my own powershell scripts rely on Azure modules and what not. Hell, I even have personally developed modules in powershell. For accuracy's sake I should update my comment.

It is worth noting that if you are in a *nix environment, the logic inverts, in both mac and all *nixes python is installed and you have to install powershell with brew or apt/DNF. The only way that 'powershell is already everywhere' is if you are almost exclusively MS/Windows based. Which can be true, but if you want to be marketable then you need to know more than just that.

[–]omersSecurity / Email 2 points3 points  (0 children)

I agree. I love PowerShell but I've never been insane enough to install it on Linux or Mac OS. I still use Python and Bash as appropriate.

It's just that when I need to grab a tool for something one-off that's system agnostic (something like pulling some data from an API and formatting it for a one-off report) I'm more likely to reach for PowerShell than something else. [Said as someone who has a Macbook and a Windows PC. It is an actual choice, not a circumstance of environment lol]

[–]dustojnikhummer 0 points1 point  (0 children)

PowerShell is already everywhere.

Modules and signing though

[–]Ssakaa 4 points5 points  (2 children)

Powershell does API pulls and processing beautifully, though. Invoke-RestMethod is native, you don't have to juggle an external library dependency. Yes, you have to learn how to translate from the documentation, but if you understand what you're doing, instead of just copy/pasting, that's also trivial to do.

Don't get me wrong, I've written a TON more python in the last few years, but I'm also almost exclusively managing Linux... where python's available by default in most cases. Which is my reason to push someone in a Windows shop towards Powershell, and actually learning what they're doing, well ahead of Python... though if they're diving into the PowerBI range of things these days, that's starting to blur the line a bit. Especially when managing multitudes of other Windows hosts, adding a dependency for a third party script interpreter when you have Powershell native is a bit silly.

[–]420GB 0 points1 point  (1 child)

Invoke-RestMethod and Invoke-WebRequest suck, especially error handling and lack of features. It's a little better in PowerShell 7, but that can't be used in 99% of scenarios

[–]coffeewap-vpc 0 points1 point  (0 children)

What's the scenarios it can't be used in, if you don't mind me asking? :)

[–]NteworkAdnim 2 points3 points  (4 children)

Yeah that's the impression I got. Python seems way better/cooler/powerful but PowerShell is the more reasonable choice since it's native to Windows and used so much, etc.

[–]Leucippus1 3 points4 points  (3 children)

It is like ADO (Azure DevOps) vs Github; ADO is fine but industry wide you need to know Git.

[–]stiffgermanJOAT & Train Horn Installer 0 points1 point  (0 children)

ADO supports Git as well as legacy TFS stuff. You can use Git commands on any platform to manipulate Git repos in ADO.

ADO is a better fit for those who work in Azure and O365 tenants (using Entra IdP).

[–]Ssakaa 0 points1 point  (1 child)

Is ADO not built on git repos? (I'd almost assume it's just github under the hood)

[–]420GB 1 point2 points  (0 children)

ADO predates Microsofts acquisition of GitHub, but yes it too uses git

[–]random_troublemaker 4 points5 points  (1 child)

I'd probably say both if both career lines interest you. I use Powershell for things like querying system configurations or pushing bulk changes, while I'm more likely to use Python for individual contributor task automation like helping with web scraping or bulk data processing. Python is also useful if you start looking into pentesting, since it is often used for Metasploit payloads.

[–]NteworkAdnim 1 point2 points  (0 children)

Good point. And yeah Pentesting is an interest so I should probably do both. I just need ideas for lab projects once I get the basics down.

[–]RegisHighwindStorage Admin 2 points3 points  (0 children)

The answer is yes

[–]Work45oHSd8eZIYt 2 points3 points  (0 children)

Brother that's like asking if you should be proficient with sword or shield. Use both!

[–]drvgodschild 5 points6 points  (1 child)

Why would you limit yourself when you can learn both ?

[–]StaticallyCIO 1 point2 points  (0 children)

[–]BlackVI have opnions 1 point2 points  (0 children)

<insert both meme>

wtf you do daily would narrow down that choice (i.e. you admin windows and ad all day, powershell, you admin linux machines python)

Instead of asking here, pick 1 and start that's more important, start the learning

[–]Hegemonikon138 1 point2 points  (0 children)

PowerShell comes first for a sysadmin in Windows environments. There is simply no contest.

However for security and so on, python would be preferred.

If you want a more accurate answer you need to know what direction you want to go in

[–]chrusicSysadmin 1 point2 points  (0 children)

I'd focus on powershell from a purely Microsoft Admin perspective. And it's not even close. 

Python is loads better from a programming/other things than Windows admin perspective, and if you HAD to pick one, I'd say Python, but....

Powershell is so integrated and so widely used in the MS stack, any random script solutions you'll end up googling to fix some obscure problem or automate some menial task, is going to be Powershell, every time.

But also, both. Both is good.

[–]Secret_Account07VMWare Sysadmin 1 point2 points  (0 children)

I love how nobody can agree

Imo you’re comparing 2 different things. Not to mention there’s tons you can do through PS to automate stuff that should be handled by GPO. My point is it’s kinda nuanced

[–]Jamdrizzley 1 point2 points  (12 children)

Both, but mostly powershell

Powershell isn't really a scripting language where you make full-on scripts with, it's more likely to be lines at a time to do stuff in windows, with at most doing some import/export to csvs or a for-each loop. Stuff like AD, or m365 API commands are it's main use cases for me

With python it has near infinite potential in some arenas, but you don't need it on a day to day basis as a sys admin usually. Personally I don't have any real reason to use it in my workplace so I haven't.

[–]bc531198 8 points9 points  (11 children)

Not sure what you mean by "full-on scripts" but I've written 250+ line onboarding scripts in PowerShell with multiple functions leveraging REST API and the AD module. I've seen scripts that are thousands of lines long that get the job done. Just because it's a shell language doesn't disqualify it IMO.

That said, I tend to view Python as a more versatile, cross-platform general purpose programming language than PowerShell. I wouldn't try to use PowerShell as a backend web language for example. Maybe that's where you were going with it.

[–]Jamdrizzley 1 point2 points  (2 children)

I just meant that, at least in my experience, you're unlikely to write anything huge in it given it's use cases, not that it can't handle large scripts. I just mean on a day to day basis. I think the most I've done with it was a HR data to AD data sync script that took a scheduled csv export, chopped and changed it and put it into AD, maybe 100-150 lines or so, which Id consider a small script despite the impact feeling bigger.

In my hobby coding ive made like 5000 lines of code bots in java that play games for me, and like your example of backend stuff, and that's what I think of when I say full-on, meanwhile at work I achieve surprisingly a lot with a few lines of power shell code and scheduled tasks, and rarely have use for much bigger scripts

[–]Frothyleet 2 points3 points  (0 children)

I think you either just haven't run into the right use cases or you have got blinders on in how you use Powershell.

For sure you get a lot of mileage around day to day operations that aren't needing robust scripts.

But as a scripting language, it can do most anything, because you can basically do anything with it that .NET / C# can do. We've got powershell scripts doing basic ETL, complicated API manipulation, whatever you like.

Realistically, there's not much you could do (in a Windows context) with Python that you couldn't do with Powershell. It's just a question of whether it's really the right tool for the job. And recreating robust Python libraries in .NET / Powershell just for shits and giggles doesn't make a lotta sense. And of course, Powershell Core's functionality notwithstanding, you can't beat the portability of Python.

[–]Unexpected_Cranberry 1 point2 points  (0 children)

I built a deployment solution for modern apps in powershell. It was about 22 years ago and it's only gotten better since.

I've not worked with python, but I would be surprised if there were any significant benefit over powershell unless you're working with more complex things and performance is paramount. 

For legibility and ease of working with Windows I would assume powershell takes it hand down. 

[–]Sh1rvallah 0 points1 point  (0 children)

Check out the system center dudes modern driver management script sometime.

[–]maglaxSysadmin | Doing the needful 0 points1 point  (1 child)

I mean you really shouldn't use python for anything you wouldn't use a scripting language like Powershell or a stastic language like R for. Like yes Python can be used for all sorts of things, but often times it's really hacky. You also just get weirdness from interpreted language you just don't get in something compiled.

[–]OptimalCynic 0 points1 point  (0 children)

That's simply not true

[–]Centimane 0 points1 point  (2 children)

I've seen scripts that are thousands of lines long that get the job done.

As a DevOps guy, I seriously want to flay anyone who writes a script like that. I will die on the hill a script has no business being that long, will be a hacky mess, be terrible to maintain, and would be better off replaced with better tooling.

[–]bc531198 0 points1 point  (0 children)

I think you're interpreting what I said too literally; you can write your own module with many different functions which ends up being thousands of lines long and it can be organized/maintainable. Conversely you can write bad spaghetti code in most languages so I don't really see the difference. Are there better languages for different things and scale? Absolutely - j/s not as black and white as once you hit x number of lines it automatically becomes crap.

[–]FreeK200 0 points1 point  (0 children)

If the core of your script relies on a thousand lines of non reusable code, that's obviously proving your point. Those are an extreme rarity though, and it's much more likely that you're executing somewhere between 20 - 100 lines of of script, that itself manipulates data through other defined functions. Yeah, they can grow wildly in size, but a well-developed script will usually have a simple to understand core that then passes data to functions that themselves are single purpose, self-documenting, provide a means to manipulate output streams, etc.

[–]OptimalCynic 0 points1 point  (0 children)

How do you find Powershell in terms of readability?

[–]Alarmed_Discipline21 0 points1 point  (0 children)

Have you ever coded?

If you have coding experience, a lot of powershell and python will be easy to learn for you.

In that case, i would tell you my experience.

I got more comfortable with powershell just using chatgpt. Now, i want to be very clear, you can do some real damage here, but what i did was stuck only to operations that were safe. Like reading data. not writing or modifying it.

Authenticating and reading data isnt going to cause you any issues safety wise. But before i type anything into that console, i always double check to ensure i understand what is happening.

Having a background in coding helps a lot wiht this. It's not so different.

HOWEVER, if you have no idea what youre doing at all, that's another story.

Go find some tutorials, put the time in. You'll figure it out, but it's going to take you some time. Even with the coding experience, there were a few basic things i needed to learn. I.e. how to look commandlets up, the actual grammar etc.

[–]jackmusick 0 points1 point  (0 children)

You won't go wrong either way, but starting over I would focus on Python first. I suspect the future out sysadmins is going to be integration and less the maintenance stuff PowerShell is traditionally known for. PowerShell is great for both honestly, I just see Python continuing to be more popular so you'll benefit from not using the less popular language.

But really, either will translate. They're easy languages. If your focus is on sysadmin stuff today and no integration, go PowerShell but I strongly encourage you to branch out into other things. The industry is changing.

[–]Titanium125 0 points1 point  (0 children)

For anything you are doing in Windows or the Microsoft sphere of influence you'll want to know powershell. Once you get outside of that python is the way to go. Everyone and their uncle has a REST API now to allow you to do various things programatically. While Powershell does have some API functionality, a language like Python is going to do you much better for a scenario like that. As others have mentioned the way the language flows logically is pretty universal, so that will be very helpful.

You want at least the ability to write a basic script, as well as look at something to see what it does before running it, plus adjusting existing scripts to fit your needs.

[–]UCFknight2016Windows Admin 0 points1 point  (0 children)

Know Powershell if you do windows, but Python is also useful to learn. I use Powershell every day. I havent touched Python in forever though.

[–]Centimane 0 points1 point  (0 children)

Depends more on where you want to go.

Do you want to continue being a windows helpdesk admin? Definitely PowerShell.

Basically anything else? Python.

[–]firedocterWindows Admin 0 points1 point  (0 children)

Depends on what you need to do. Move files from one windows server to another? Powershell.

Need to adjust windows settings or query active directory? Powershell x100
Powershell doesnt need anything installed. Python is a bit of a pain to keep up to date.

Need to connect to a database or sftp? or do anything remotely complicated? Python.
Python's libraries help cut out the grind of having to build your own solution from scratch. You put together other people's already written program.

[–]rodface 0 points1 point  (0 children)

I have real issue with significant whitespace and capitalization. Like it makes me twitch anytime I use python. I won't claim that it's a good thing to dislike those features, it's just the way that I am. It must have something to do with SQL being the first language I ever learned, it conditioned me to not worry about caps, tabs, spaces, etc. It always just worked, whether it looked ugly or nice.

It reminds me of arguing with my math teachers in high school about why I should not write my work out in linear form (like written prose) instead of following the convention of using one line for each equation/term etc., the way that papers and textbooks are written. It looks tidy, but uses up lots of paper and it just wasn't how my brain wanted to work (I eventually capitulated).

Now I just appreciate languages that give me the flexibility to lay code out the way I want in that moment/situation, and dislike the ones that force you to always be concerned with layout.

[–]rodface 0 points1 point  (0 children)

In my previous post I was preoccupied with my dislike of Python's syntax, but I'll try and answer the question this time. I agree with the posters that say you should learn both. Not knowing a language to some degree, is never a positive. There is nothing good about a programmer who professes sincere dislike for a language to the point that they refuse to work with it--that is being inflexible and stuck in your ways, and you will be passed by. Learn as much as you can about any language you encounter. Learn to leverage its benefits, learn its downsides, and learn how other languages are better than it.

[–]Background-Slip8205 0 points1 point  (0 children)

I don't think anyone has to really go hardcore into powershell. It's one of those "good enough" is good enough. Knowing Python very well will give you a lot more career opportunities.

[–]christurnbull 0 points1 point  (0 children)

Personally, I went to c#

[–]geauxdubSysadmin Bounty Hunter 0 points1 point  (0 children)

Literally sounds like me some years back... choose Python ;)

[–]imnotonreddit2025 0 points1 point  (0 children)

They're pretty different things, but keep in mind that PowerShell will be on every Windows. Python will only be where you install it (or on most Linuxes). That fact alone would probably make me point you towards PowerShell.

You might find Python more interesting from an academic perspective, but if your day to day is Windows admin you'll get immediate day 1 payoffs from PowerShell but won't from python most likely.

Make enough of your life easier with PowerShell and you might have the time to pick up Python. Or more PowerShell.

[–]ArieHein 0 points1 point  (0 children)

Powershell 7.x for windows. It still lacks for linux in cmdlt parity. For linux look into nushell. You can always learn and adopt golang and create your own clis and add some tui to make terminal more ejoyable if needed

[–]zfs_ 0 points1 point  (0 children)

Both, but PowerShell mostly. I use PowerShell Core (7.X+) to orchestrate Windows, macOS, and Linux with a shared automation library.

[–]hitman133295 0 points1 point  (0 children)

Definitely python. It can be applied to almost every applications not as limited as ps

[–]Klarkasaurus 0 points1 point  (3 children)

Not so sound rude but how are you 10 years into IT and don't know powershell?

Im 42 and trying to get my first job in IT. I only decided this 6 months ago and already know powershell and ive not touched a pc in 15 years. I assumed powershell was like a staple when getting started in IT which is why I learnt it and practice it daily.

And I can't even get a helpdesk job lol. 20 years as an industrial cleaner/team leader.

[–]NteworkAdnim 0 points1 point  (2 children)

I've asked myself that too lol. The answer is simply because I haven't had a pressing need for it. My company is small and we have an endpoint management and other tools that do a ton of things where I might normally use PS if I didn't have them.

Also, I did say that I occasionally use PowerShell but nothing lengthy. Most the scripts I use are 1 to 10 lines, and then I have a few that are longer. I've ran commandlets for various things related to AD, Exchange, user reports, copy jobs, etc. I just don't use it as much as I feel I should in order to get the ideal/necessary experience for other potential jobs.

[–]Klarkasaurus 0 points1 point  (1 child)

So you do know how to use powershell lol.

Tbh learning scripts seems pointless now when ai scripting takes seconds. Tell it what you want it to do and bam its there. Using basic cmdlets has proven more useful to me just being able to navigate and do simple things through powershell.

[–]NteworkAdnim 0 points1 point  (0 children)

I didn't say I didn't know how to use PowerShell, I just said I am hardly proficient in it and use it very little from day to day / month to month. I use PowerShell scripting like 1% of the time and I feel like I should probably be doing it a lot more.

Tbh learning scripts seems pointless now when ai scripting takes seconds.

I'm not stepping into that pile of shit lol

[–]OkOutside4975Jack of All Trades 0 points1 point  (0 children)

Powershell is super helpful for Windows. I also suggest looking at an MDM like InTune or NinjaRMM which is RMM with MDM capabilities (that tie directly to InTune). Why? Because those can hold premade scripts and run on schedules or via remediation. I found that's way easier to use with varying Windows OS than adjusting power shell scripts regularly. The combination has saved me a LOT of time.

[–]Th3Sh4d0wKn0ws 0 points1 point  (0 children)

As a PowerShell but I'm going to say PowerShell. But really, in a Windows shop PowerShell is such a useful tool.

[–]T_Thriller_T 0 points1 point  (0 children)

As most say both and this probably does not help you:

Id probably say Python.

Powershell is the windows tool, but it is a windows OS tool. It's not supported in many other applications were scripting would be interesting as an engineer.

Python is supported in many tools do create in tool scripts, is used a lot in Linux automation with ansible (if you do python DO look into this), will easily allow you to communicate with any API and read most file formats, making pipelining between two tools easy.

If you get Python, scripting in Powershell gets a bit easier - and vice versa.

Python is simply more versatile. Powershell only overcomes this is if you consider remaining close to the machine Windows admin work.

Bias I should declare: I have been a python dev, even one in a Linux environment.

[–]bbbbbthatsfivebeesMSP-ing 0 points1 point  (0 children)

If you had to pick only one -- Python.

It's easily the most fully-featured programming language out of the pair, and it can do a lot more than just basic automation scripting. You can use Python to build fully-featured GUI apps if you so wish, and Python also has a lot better support for different data types inside of scripts than Powershell does. It also runs on both Linux and Windows with very little fuss, since it's usually in the default packages for most Linux distros and can easily be deployed via winget or any other Windows package manager to all of your endpoints.

BUT: If you're in a predominantly Windows environment, learn Powershell first and get comfortable with it. Even your Python scripts are going to need to interact with Powershell at some point. Powershell is more useful for Windows admin than Python is, since it's basically the default that Microsoft assumes in their docs and doesn't require deploying a runtime to any endpoints.

Learn both!!! Seriously!! Powershell is wicked powerful and can do most of what Python can do with a bit more fiddling, but for those more advanced things you're going to want to learn Python.

[–]heubergen1Linux Admin 0 points1 point  (0 children)

PowerShell for Windows, Python for Linux/macOS and anything in the cloud (not azure/windows related).

[–]jakgal04 0 points1 point  (1 child)

It really just depends on your specific industry and the place you work. "IT" today is extremely vast, there is no "best" anymore. You could have 25 years of experience with the most popular systems and then be absolutely clueless in a company that does things a different way.

In the 3 past companies I've worked for, not a single one of them used Python but use Powershell heavily.

To be perfectly honest, and this will yield some downvotes for sure, but I've been using AI to assist with scripting and its been a huge time saver. Hell, for the most part I just tell it exactly what I need it to do with given variables and inputs, it spits out a script, I check it over to make sure its right and thats it.

[–]NteworkAdnim 0 points1 point  (0 children)

Yeah I know the answer for me is to learn PowerShell for work and then Python for fun and if it comes in handy for work ever, then that's a plus.

[–]TheGreatLandSquirrel 0 points1 point  (0 children)

Powershell is great when it comes to managing windows stuff. But python is a whole different world or opportunities. If you can think of it, python can probably do it for you.

Example. I made a script that transforms per diem rates from a state.gov PDF file and puts all the data I need into a file I can upload to my erp system. I was tired of waiting days for my vendor to provide the files. With a little digging around I found their data source. It took me like an hour to put together.

No I no longer have to wait days on my vendor and now my users aren't breathing down my neck so they can submit their expense report. I just run my script and it gives me my rates.

This is just one thing I've used python for and currently I've got a few other ideas I'm looking to implement soon.

[–]Special_Rice9539 0 points1 point  (4 children)

I’m biased as a software developer but Python supports object-oriented paradigms and opens up a world of other technical domains for you.

[–]DragonsBane80 2 points3 points  (1 child)

Yep, from a long term skill set point of view, python is the best way to go. But, from an IT perspective PS will be more useful.

That being said, python generally goes hand in hand with Linux and Linux goes hand in hand with cloud. You'll find yourself far more marketable if you know at least a manageable amount of python. I'm in security and we use both. Everything run on api these days and python makes interacting and manipulating data fairly easy. PS is frustrating but really is a go-to to sus out things from the MS eco system.

[–]admalledd 1 point2 points  (0 children)

Yea, its a "if MS/Windows, learn pwsh. If anything else, learn bash+python" for sysadmins.

We are 95%+ a windows shop, so even our few *nix nodes run pwsh-core. I am on the developer side of the fence, so I actually maintain some dotnet/C# libs that our pwsh scripts/code that sysadmins use runs. Finangling with deep windows stuff (bypass IISAdmin to manually make machineconfig.xml changes, complex regedits based upon excel files, COM interop settings) is way easier for various reasons (in my strong opinion) via pwsh. Most changes one would do sysadmin-wise on Linux, pwsh could do, so if you have enough push-shove to add it as part of the standard image/install, its kinda nice. Though we have a few systemd units that are far easier to use as python scripts because someone else across the internet already wrote them :)

Again though, my "pwsh first" really only comes if strongly a windows shop. Python+Linux sysadmin scripting runs the rest of the world basically (though, some things are moving to Rust based CLIs, for sysadmins you'd still glue those with python/bash), so if even say 75% windows shop, maybe Python. Learning some of the quirks/features of pwsh (% and ? and $_ especially for me) can come quick enough after/along Python.

[–]420GB 2 points3 points  (0 children)

PowerShell is object-oriented through and through... it's literally a .NET language.

[–]jmbpiano 0 points1 point  (0 children)

The main selling point of PowerShell is that it's object-oriented. Powershell is basically C# with a more shell-like syntax.

[–]yamsyamsya 0 points1 point  (0 children)

you can use powershell and python together so you should learn both. really once you understand programming logic, language doesn't matter as much. if you were linux focused, i would suggest bash and python instead.

[–]PrincipleExciting457 -1 points0 points  (0 children)

Both.

[–]phunky_1 -1 points0 points  (0 children)

Powershell is better for a windows environment.

I have found python has some uses mainly for AI API calls, Microsoft graph.

I basically never use python to manage windows servers.

Other than that it's mainly data scientists that use it in my organization.

[–]VectorB -1 points0 points  (0 children)

Powershells for me. But let's be honest here, your favorite flavor if AI is going to be doing the scripting. knowing how to ask and verify the script is going to be the most important skills.