How can I apply what I learn?

Hello all. New to the site and wanted to say hi.

I’ve been messing around with PowerShell for about a year, but am ready to learn it for real now. I have written and revised a script,, but other than using it at my last job I don’t have any way to apply what I learn. This leads to me becoming disinterested and next thing I know a couple months have gone by and I’ve pretty much forgotten everything I had learned. I don’t use PS all that much for work (I hope to in the future), but I think that is because I don’t know how to utilize in a non-production setting, like if I’m studying at home.

So I guess my question is: what are some things I can do at home or on my work computer that will allow me to retain what I learn?

Hopefully this makes sense. Reading it back it doesn’t seem to, but maybe it’s just me.

Any input is appreciated!


I was in the same boat as you. I started learning PowerShell back in version 2.0 but got really interested in version 3.0. I started with building a lab, running Windows Server and some clients. I was able to create users in AD with PS, used remoting and DSC. Once I was able to show our desktop engineer what I can do with PowerShell, he started to give me projects. Now, I have to create a PowerShell Outlook Signature script that can tie into AD for user info.

Thanks for the response, Wilfredo. I guess my next step is to build a lab. Did you use the Windows Server trial version? What kind of VM did you use?

I found it incredibly easy to use PowerShell at work. I’m a sysadmin by trade, and I manage Exchange, Lync server, AD, SharePoint, VMware, Hyper-V, Citrix XenApp, XenDesktop and NetScaler and a number of other products. Some I have more responsibility over than others, but we’re a fairly small IT shop for a law firm so we get exposure to many products (many focused on legal purposes).

I started with getting used to administering Exchange and AD through PowerShell rather than the equivalent GUI tools like ADUC and Exchange Management Console. Playing with the Get-* cmdlets is a great way to start discovering what’s available to you and peeking at information about your organization in the shell. Then start forcing yourself to figure out how to perform administrative tasks in PowerShell that you may have normally performed in the GUI. Updating user account attributes, resetting passwords, creating/disabling accounts, moving computers/users between OUs, etc. Once you get comfortable with using the shell for these tasks I personally think most of them are more efficiently completed through PowerShell than through a GUI admin tool.

Citrix and VMware management in my opinion were leaps and bounds more efficient if administered through PowerShell than through their respective GUI-based admin tools. When doing some testing with Citrix for instance, copying and modifying the properties of an application became a single line in my console, granted a fairly long line, but after some time I know off by heart how to type it out so there’s no need to RDP to a server, open app center, wait for discovery, then go through the various context and settings menus to change the properties you want to change.

PowerShell is not “just” a scripting language. The interactive console aspect of it can be incredibly useful and I typically have at least one console open all day on my machine. It’s usually the first thing I open when I log on in the morning. I swear I’d considered writing a tool to read my newest 10 emails in the console to see whether I REALLY need to open Outlook… :stuck_out_tongue:

Based on my use at work, and completing tasks using it, I’ve become the “go to” guy for PowerShell, and more and more tasks are coming my way, and I’m definitely getting the interest of my colleagues on learning it as well. They can definitely see benefits now whereas before it was “but I can just as easily click what I need in the GUI, why do I want to try to remember all of those commands?”

Yeah, command line definitely beats GUI once you get used to it. Thanks for the info.

I confirmed I can import the AD module, Exchange not so much.

One thing that will help in giving your things to do and ways to expand your skill is right here on this site with the PowerShell Scripting Games. Check out the Articles each month for the new game and see how you would solve the problem. You can also pick up new skills and knowledge by seeing other’s solutions and angle of attack.

Trial versions would do the trick if you approach it wisely (ie, document/build your lab using DSC - then you can take it down and rebuild from scratch quickly using latest trial OS version).

After you’ve solved all your problems at work come here and solve other peoples problems:-)

Two suggestions which encapsulate a lot of the above:

  1. Find a problem to solve & solve it with PowerShell

  2. Learn by answering questions on the forum - even if its been already answered you may have a unique insight due to experience in your environment

Thanks, everyone. Great insights.

challenge yourself to script your next server build entirely.

It doesn’t have to be fancy like DSC pull servers, using a simple script is a good start. Not only does it force you to learn, but the resulting script acts as as-built documentation. Two birds, one stone.