Skip to main content

Back From Asia

I’m back from a multi week training trip to Asia and Micronesia.  I spent about 3 weeks in both Yokosuka, Japan, and Guam, USA delivering training on Windows 7 and PowerShell.  What I found on my trip was the alarming amount of resistance to automation.  Let me just go on the record of pointing out the amount of automation already built into the Windows Operating systems.  Your client operating systems most likely have some type of scheduled task to defrag the drives.  Look at your patch management or malware updates.  All of this is done through automation.  So where did this resistance come from?

The client worked on a network spanning Europe and Asia.  With over 10,000 seats, they needed help.  When I asked about the use of PowerShell, they were very interested to know more, but were currently not allowed to use it.  The managers wanted all processes to be verified visually.  The last time I checked, not to many people manually access each and ever client to see if this weeks 20+ updates have been applied.  Just to give you an idea of how long that would take, lets say it takes 2 minutes remote in, check the installed patches, and then log off.  That would require about 330 hours of none stop work to verify those updates.  In other words, you would not be able to finish all those checks before the next set of updates arrived.  More then likely, they are using an automated processes.

With PowerShell, you can tell PowerShell to read the feedback.  It could be what is acceptable in a string or integer value.  It could be a return code.  Maybe the remaining storage capacity or current network utilization.  What ever value your people are looking at, you can script for it.  Think about it.  If your people had to run a process manually 10,000 times and then check a value (or more) what is the probability of error?  I would say 100%.  With automation, you can be sure that the job will both get done and be reported properly.

A key to this is learning PowerShell properly.  I get a lot of requests for help from people who have been struggling for months to try to learn a concept in PowerShell,  Most likely after a week of PowerShell training, you will be able to better understand how to approach your task and how to code for it properly.  Please feel free to contact me and I will let you know when my next publically available PowerShell class is. 

Comments

Popular posts from this blog

Adding a Comment to a GPO with PowerShell

As I'm writing this article, I'm also writing a customization for a PowerShell course I'm teaching next week in Phoenix.  This customization deals with Group Policy and PowerShell.  For those of you who attend my classes may already know this, but I sit their and try to ask the questions to myself that others may ask as I present the material.  I finished up my customization a few hours ago and then I realized that I did not add in how to put a comment on a GPO.  This is a feature that many Group Policy Administrators may not be aware of. This past summer I attended a presentation at TechEd on Group Policy.  One organization in the crowd had over 5,000 Group Policies.  In an environment like that, the comment section can be priceless.  I always like to write in the comment section why I created the policy so I know its purpose next week after I've completed 50 other tasks and can't remember what I did 5 minutes ago. In the Group Policy module for PowerShell V3, th

Return duplicate values from a collection with PowerShell

If you have a collection of objects and you want to remove any duplicate items, it is fairly simple. # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   # Remove the duplicate values. $Set1 | Select-Object -Unique 1 2 3 4 5 6 7 What if you want only the duplicate values and nothing else? # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   #Create a second collection with duplicate values removed. $Set2 = $Set1 | Select-Object -Unique   # Return only the duplicate values. ( Compare-Object -ReferenceObject $Set2 -DifferenceObject $Set1 ) . InputObject | Select-Object – Unique 1 2 This works with objects as well as numbers.  The first command creates a collection with 2 duplicates of both 1 and 2.   The second command creates another collection with the duplicates filtered out.  The Compare-Object cmdlet will first find items that are diffe

How to list all the AD LDS instances on a server

AD LDS allows you to provide directory services to applications that are free of the confines of Active Directory.  To list all the AD LDS instances on a server, follow this procedure: Log into the server in question Open a command prompt. Type dsdbutil and press Enter Type List Instances and press Enter . You will receive a list of the instance name, both the LDAP and SSL port numbers, the location of the database, and its status.