What PowerShell can do for SMBs
Thomas Lee reveals how Microsoft’s PowerShell can automate the tedious tasks carried out by IT administrators
Windows PowerShell is Microsoft’s task automation platform for IT professionals. It’s designed to enable the automation of common IT tasks, including the control and management of just about every aspect of Windows and Microsoft’s Windows applications.
PowerShell is a key component in Windows Server 2012, and has been broadly adopted by the industry, with companies such as Cisco, EMC, and VMware jumping on the PowerShell bandwagon.
The technology first saw the light of day in September 2003 as an early beta product known in those days as Monad. The first formal release came with Windows Vista and Server 2008. The most recent Version 3 ships with Windows 8 and Server 2012, and is also available for Windows 7 and Server 2008/R2.
It’s designed to enable the automation of common IT tasks, including the control and management of just about every aspect of Windows and Microsoft’s Windows applications
PowerShell comes with a simple text-based shell, similar to cmd.exe and a graphical tool called the Integrated Scripting Environment (ISE). The ISE is an updated shell that handles Unicode. The text-based shell didn’t handle Unicode, which meant users in countries such as Japan and China couldn’t easily use it. The ISE is also extensible and a great, free, development tool to help admins build and manage scripts.
PowerShell, both the shell and ISE, has three key constituents:
Cmdlets - These are mini-programs that enable IT pros to perform useful tasks, such as creating new Active Directory users, setting policies for Lync Server or implementing Exchange policies. PowerShell comes with loads of cmdlets.
Objects – Every ‘thing’ in PowerShell is an object – numbers, strings, Exchange mailboxes, SharePoint sites and IIS websites are all represented as objects which drastically simplifies administration. This takes a bit of getting used to, but once you master it, objects really simplify the building of automation scripts.
The Pipeline - this is a Unix/Linux concept that allows the output of a cmdlet (ie. the objects produced by a cmdlet) to be consumed by other cmdlets. This dramatically simplifies writing scripts to perform common administration functions.
PowerShell has been broadly embraced by all of the application teams at Microsoft as well as by Microsoft customers as the way forward for automation. PowerShell can also be used to manage online software packages such as Office 365.
PowerShell’s impact on business
So far, so good but what’s in it for the smaller company? Legions of Windows Small Business Server users and administrators have managed their systems successfully for years – so why bother now? PowerShell experts may view the answer to be self-evident. But it does tax the minds of many who are coming across PowerShell for the first time and who don’t want to become programmers.
However, there’s a huge advantage in getting to grips with the technology. PowerShell enables companies to reliably automate pretty much any computing task in the Windows Platform. And with the advent of Version 3, the scope of what can be achieved widens to include products from companies including Cisco, EMC and VMware.
Every IT pro in any sized company is faced with performing repetitive tasks – simple things ranging from creating a new user (and removing that user when the employee leaves), changing passwords, adding users to groups, and so on.
There are ways around this. Admins can fire up the Active Directory Users and Computers MMC, and click their way through the process of adding new users. But with a little bit of effort it’s possible create a script that takes a CSV file (produced using Excel) and adds/removes/updates user accounts. The time taken to write the script will be more than repaid in the speed of managing new users (see Microsoft’s TechNet site for a sample script and a sample CSV file).
Of course, these days a new employee doesn't only need an Active Directory account, but an Exchange Mailbox, a default home folder, access to Lync and SharePoint, and more. But it would be straightforward to extend this script to achieve these extra goals.