How do you learn PowerShell?

I get asked every now and then—[more so since my book]({{ site.book }})—‘How did you learn PowerShell?’ or, ‘Did you self-learn or did you get trained in it?’ ‘Did you experiment?’ and ‘How long does it take to learn PowerShell enough to be comfortable using it?’ I even get the odd ‘How do you convince your clients on using PowerShell scripts?’ ‘Are all scripts you use written by you? How?‘1

Modularity and Scalability

In the last post, Before you automate, I had promised that I will give an example of how modularity is important for scalability. I had mentioned that modularity leads to simplified scalability. I had also said that applying a little thought to the automation solution well in advance would save us a lot of effort. This way, we would be writing less and doing more. For instance, I once received a request create a script to update a distribution group every day, based on data from a system that the client used, in order to automate some parts of user account provisioning, called Oracle Identity Manager, or OIM.

Before you automate

As significant chunk of my work involves automation using PowerShell. I speak as an Infrastructure specialist, when I say that automation has gained a lot of traction. Automation has several benefits, such as: Reduction in human errors. Higher speed. Higher efficiency. Reduction in effort. No boring tasks. This is all good, shiny. However, can everything be automated? Here are some things you should consider before you automate anything, whether it is an odd user account termination process, or disaster recovery of your datacenter.

Service Status Monitoring using PowerShell

PowerShell is a blessing for Windows administrators. With the level of reach that PowerShell has in Windows, there is hardly anything in Windows administration that cannot be achieved using PowerShell. Recently, a colleague requested for a script that could help them monitor a set of services on a set of computers. They wanted the script to run every so many minutes, check if some specific services are running on a specified set of servers, and notify them if a service wasn’t running.

Removing Chrome data (or anything) from Citrix profiles

Citrix User Profile Management (or UPM) is used in many environments to ensure that users' data is uniform across the entire Citrix infrastructure. This way, a user can access his work anywhere. Citrix UPM handles this by synchronising users' profiles using the UPM share, which can be hosted on a file server. However, there is a drawback to this: data like browser cache are synchronised across the environment as well, along with user profile data.