Intermediate
mastering powershell
There might be a variety of reasons and individual motivations but here goes my take on the same:
- GUI may look appealing but costs resources: Doing things over GUI is what made computers popular over years but those fancy things always come with cost when scaled. You need to start and stop services on a couple of computers, you do it either by RDP or remote mmc but that would load all the services, their names, their descriptions and status and what not. None of which you needed for your work to be done. You want to update the department of a user, we want to reset the password of the user or extend account expiry, but going by GUI, you would get the data related to what domain you have, what OU structure you, how many other users you and a lot of information about the target user which you didn’t look for. All these are taking resources which could have been better used somewhere. Just imagine, creating 1000 users via GUI or creating 5000 DHCP scopes on 100 DHCP servers, tell me how much time it would take for you? Guess how much time it would take if automated/ scripted.
- Automation is not optional: No matter what work you are doing, which company you are in or what career you have, without exception, a major percentage of our work remains repetitive. More so for operations guys or those in implementations or PoCs as well. In many cases, the same can be as high as 90% of our daily work. That would mean that we are spending time doing things which we very well know how to do, already did couple of times. It makes our work not only boring but way less inefficient as we don’t get time to learn new things in a world changing at a fast pace. It may take some time, to automate something by any means possible, some more time to test it and make it further robust or may be even more time to incrementally update the same, but when you consider that time investment in terms of repetition, then it gives way more returns. Something which might take you five mins every day, might be done within a second with Automation, which may be a couple of hours to set up or even a day for the first time but it would give back your time within weeks.
- Documentation is mandatory: Something went wrong some day at work because in place of clicking somewhere, someone clicked at wrong place. In place of launching one application, something else got launched. You were asked to do certain things but instructions were lost in verbal transaction and were misunderstood in between. These are some common issues which arise when proper documentation is not in place.Why documentation doesn’t happen? These steps are so obvious, what to write about this? On top of doing the work on a tight schedule, I need to write before and after the same and noting down the things while doing it is a pain. Nothing new in this, then what to document?These are not excuses but genuine reasons most of time, but still documenting what you did, what happened, what changed, these are important things for achieving a perfect service and it would not happen when things don’t work like clockwork. We can keep on forcing people to do the same and failing over time, it’s easier to invest in automation since the same can not only do the work but can automate the documentation along the way without much overhead. It’s always easier to trace back the steps when something happened via a written code than when it’s done by human. It’s always possible to review the code many times before putting in productions, rather than ensuring that the plan executed by humans goes right each time despite varying circumstances and pressure.
- Time is money, not just for your company but for you too: Work is often measured in terms of hours spent in IT but for business, it’s always about the value delivered. You might be getting paid for something today but next year you are expected to do the same thing and even faster on the basis of your experience and next, even more efficient. Trust me, it’s not easy to sustain for many as it’s hard to get time for yourself and to learn new things while doing what you are supposed to do even faster and even more in quantity. You need something drastic; you need to ensure that you are not wasting time. Even for innovating or getting new ideas, you need to have some spare time, for progressing levels in company, you need spare time for networking and learning other skills. From where that time would come? Automation is one of the solutions and people working in Microsoft world, PowerShell is closest you got.
- Microsoft Common Engineering Criteria: Microsoft has something called CEC, common engineering criterion means any product Microsoft makes, need to pass that test, it may be about security, certain look and feel or integration with something or interfaces or anything. PowerShell has been part of that since 2009. What that means? This means no Microsoft product or feature would be made unless it is fully supported via PowerShell. There should not be any operation or activity in the particular product, which cannot be done in PowerShell. This may even mean that there might be things which are POWERSHELL ONLY, like enabling Active Directory Recycle Bin. Not only just it’s easier to do in PowerShell but you just can’t do it in any other way possible. So not learning PowerShell is NOT an option if you really want to stay in career with Microsoft technologies.
- Offers in-built detailed help system: The biggest obstacle about learning any new thing is where to start, where to get learning resources, where to get help/ examples. PowerShell help system and its easy syntax is one of the biggest strengths of the same. You don’t really need to go to any website to know about all commands in a module, you don’t need to read any book about what a specific command in PowerShell actually does. Once you get hand of PowerShell help system and how to make use of it, not just the things which are shipped with PowerShell, anything else which you added over time, would follow the same suit and you can get all the help you need on the PowerShell prompt itself. Once you know the basic syntax system in PowerShell, if you really want to learn, then you don’t even need any mentor for the same.Even then if you still need help, then PowerShell has such large community for a product on shelf since last less than a decade that you would never find yourself alone and even the future is not expected to be any different considering the fact that 70% or more of latest PowerShell code coming from community than Microsoft itself.
- Intuitive and extensible: For command prompt or any programming language, the major issue has been learning syntax while PowerShell doesn’t hide behind obscure command names etc but follows a consistent Verb-Noun syntax across board. All commands including custom functions created by you would have similar basic support on help commands by default. Even if you download and install a new module, all the commands would have the commands in the same familiar pattern and would behave in same familiar way like Get-*** would always give you some data back without changing anything, new-* add-* would always create something new. While even typing on the PowerShell code, IntelliSense and tab complete would be at your service telling you if you are doing right or going wrong at any step, which makes life so easy. Not just that whatever you want to do there would be a module to do just that, and you wouldn’t be needed to start from scratch. Don’t want that? Most of the time, you can go through the actual code of the modules and create your own code around that. PowerShell is not a Windows only thing anymore, but it supports all platforms. Not just Windows, you can run commands on Linux, not just Azure and Exchange, you can manage GCP and AWS with PowerShell once you have related modules in.
mastering powershell
Curriculum
- 0 Sections
- 0 Lessons
- 0 Quizzes
- 36h Duration