Hey all!
I’m a long time Linux user, and I’ve been avoiding it for the good part of the last ~15 years. Most of my Windows experience is from the XP times.
I’ve changed careers from agriculturing to ICT a few years ago (almost done with school), and while I can say I know my way around Linux pretty well, Windows is an alien landscape to me.
I got a job a few years ago as sysadmin (not so much, but still) / IT-support (more), and I find myself struggling to help customers with Windows / handle Windows servers. I would like to change that.
I have no intention on moving my personal computing to Windows due to privacy concerns, which is a bit contradictory to my goals, because AFAIK learning things this way is the “best” approach. It was the case with Linux for me, at least.
While i do learn Windows at my job, I’d like to compliment it with another approach, too.
Do you guys have any suggestions how I could learn Windows (the whole ecosystem, not just end-users computers)? I’d like it to be fun, as I get bored easily (breaking my Linux time and time again was really fun learning method) Maybe fire up some VMs and go from there, somehow? What do you think are the most essential skills for a Windows sysadmin? Active Directory, sure, but what else?
How to learn Windows? Years of pain and torture of course.
What to learn? Powershell, learn powershell.
Then as you follow along any guides or howtos for administrative tasks, try to search how to accomplish the same things in powershell. Take notes on your own powershell learnings. I keep all my windows administrative powershell one liners, scripts, and notes in the same digital notebook for quick reference and updating.
If you’re already experienced with bash, like I was, learning powershell might be tough. As it was for me, I had trouble understanding why PS cmdlets seemed to hide data when piped… Format-table(ft) and Format-List(fl) help tremendously
Powershell remoting is still a pain in my ass in most places, I rarely use it.
There’s a windows admins discord group that’s pretty savvy I asked and learned a lot along the way there. https://discord.com/invite/winadmins
YouTube! Don’t necessarily look for YouTube powershell windows videos. Just the necessary tasks through the GUI will give you the correct direction to begin converting a process to PS. Learn how other Admins process tasks by watching them. Especially if it’s an often repeated task try converting some or all of what they do in the video into PS equivalent.
With all of that said knowing powershell doesn’t really help recovering from disasters. Knowing how to install windows and recover data from borked systems is a task best learned through battles. So, absolutely set up VMs and installed all manner of versions you’ll be working with…that way you’ll have familiarity with when things go wrong in them. I’ve yet to install windows 11 in a VM but I did try to install a copy onto a surface tablet only to learn the hard way that do ing so leaves the tablet without the drivers necessary for using the keyboard and touchscreen…weird need a custom built image or recovery image, great fun.
Powershell remoting is still a pain in my ass in most places, I rarely use it.
So the big thing with remote Powershell sessions is that you can’t hop around like you can with SSH, but it’s super useful when troubleshooting complaints of frozen/misbehaving systems with less resource needs than rdp
Pywin32 does fascinate me
I can have python on Windows with the power of Powershell
I love python. Even on windows but I tend to try to learn to live off the land and not prerequisite my admin skills on additional software that may not always be available or an option.
Not sure if there are any great resources online but there isn’t that much you need to know. I’d say just download it and mess around. Here’s some random tips:
-
Windows has its own terminal package manager called winget, it’s very useful.
-
Nobody uses CMD anymore, everyone moved onto Powershell. The new windows terminal is also nice.
-
Windows has a lot of random features and controls hidden in its registry, which you can access via regedit. You usually don’t want to mess around with it but sometimes it is useful.
-
There are a lot of scripts online to de-bloat windows and quickly default to the best privacy settings. I’d run that if you’re setting up a new install. Note that some of it comes back every time you update and you’ll need to run the script again.
-
Just understand the file system well and how to use the control panel and firewall and you’ll already be ready to go as a sysadmin
I’ve been using https://github.com/hellzerg/optimizer for debloating my Windows VM (Yeah I forgot to mention I have one installed which I use for some school related activities, mostly Office 365 stuff), but a script would definitely streamline the debloating process.
Winget seems interesting, going to check that out!
Powershell, while it seems like a useful tool, is just gibberish to me. Somehow the syntax is just so weird for my brain to wrap around (this is no criticism towards Powershell, more like “I’m too stupid to understand PS”)
I do like Control Panel, as it reminds me of the sweet sweet XP times. And I’ve fiddled around the registry a couple of times, always blindly trusting what some random blog post advices while having no idea what I’m actually doing. It’s kinda daunting, but I guess that’s just the way it is. Maybe it gets easier over time :D
Thanks for your answer!
Oh and one last thing, you may want to install PowerToys. It’s an official program that has a suite of features for power users, things like bulk renaming, easier access to environment variables, checking which files are in use by which apps, and a couple of other neat stuff. I use the color picker all the time.
Winget has issues frequently. I would not use it in prod
-
From an admin perspective one of the best things to lab out is setting up a standard SMB server stack, which is 2x domain controllers, 2x DHCP servers, a file server, and a couple of desktop VMs, then practice setting it up to be nicely locked down like in a standard corporate environment. For example:
- redirect user directories to the file server and set permissions so only the user, admins and departmental managers can access files
- setup departmental directories on the share with departmental and managerial permissions
- setup group policies to lock down the desktops so that users just get a standard experience
But also make sure to set this up both in Windows Server with the full “Desktop Experience” as well as on Windows Server Core, and try to do so while following best practices with redundancy, network segmentation, etc. you could even get fancy and setup a remote site with redundant servers and replication to the remote site as well to experiment with how that works.
Then of course, once you have your virtual SMB network setup, try to break it. Fill up some of the VMs so it’s out of disk space, corrupt one of the VMs and try to recover it, power off the servers when you shouldn’t, cut some important virtual Ethernet connections and leave them severed for a while, or degrade the virtual ethernet connection and see what happens, delete the only domain controller and see what the best path to business continuity is, etc.
This covers a lot of the tickets and critical failures you’ll see on a standard SMB network and will give you a good amount of exposure to a lot of what you’ll work with in the “real world”
That’s great suggestions. A “chaoslab” would be awesome for training. I think it’s netflix that has a group dedicated to running chaos in production!
A real world cursed config a friend who works at an MSP told me about is a domain controller with HyperV setup on it. You read that right, the DC is on the HyperV host. Apperently they’ve been wanting to fix it for a few years but haven’t gotten the go ahead on the hours or downtime to fix it
In capitalist America, Windows learns you!
Insert old Russian propaganda
Most accurate comment on the Internet today.
Microsoft publishes a learning platform that covers a large amount of topics, from Windows Server to Azure services. I used it to prepare for an Azure DevOps Database Administration certification. Should be a good place to start as it’s free. Just search for what you’re looking to learn or select a product from the filters and off you go. https://learn.microsoft.com/en-us/training/
For me, the fastest way to learn is by playing with it, and it sounds like you’re the same.
If you prefer to avoid installing it ‘bare metal’, you can have it on a VM.
I’d suggest specifically QEMU, or VirtualBox.
QEMU, because of the performance, and VB, for its universality, and cross-platform compatibility.
I’d also suggest, like other commenters here, to learn CLI tools, CMD and PowerShell commands, and DiskPart too.
*KVM with Virtio
Azure maybe?
You also can setup Samba AD and join a few VMs to it.
Going to go against the grain a little here and say, why bother? If you already have a background in Linux, that will get you further in your career much faster. My education was 100% windows/cisco, but I haven’t touched either in the better part of a decade since I’ve been working with mostly “web stuff” where Linux dominates.
Invest the time you would spend slogging through learning Active Directory and grinding MCSE into something useful like Docker, ansible, bash, infra-as-code, etc. It’s more fun, and it’ll make you way more money!!