Ezine 179 Learning Microsoft's PowerShell
Ezine 179 Learning Microsoft's PowerShell
A new year begins. January is traditionally the time for learning a new
language, or renewing promises to master skills that we had started, but
abandoned. The purpose of this ezine is to encourage you to take the
first steps in mastering Microsoft's PowerShell.
This Week's Mission is to explain what PowerShell is, and to offer
reasons why you should use PowerShell to control your operating system.
The most important reason is that it's such a joy to feel the power you get
from typing just a few verb-noun combinations.
From the point of view of learning PowerShell, there are two groups of
students, a smaller group of programmers and developers, and a bigger group
of server administrators and dabblers. It is this second group that I
aim my articles. Typically they would have been DOS experts in a previous
computer generation.
PowerShell means different things to different people; it depends if you
are an administrator, troubleshooter, dappler or developer. If you
have previous experience of DOS or VBScript then you will look for specific
things from PowerShell - you will not be disappointed.
- PowerShell could be portrayed as a command-line to configure the
operating system.
- A quicker alternative to GUIs for inspecting and changing settings.
- A replacement for scripting languages such as VBScript or KiXtart.
For instance, working with WMI and writing to text files is much easier.
- A basic Knowledge of PowerShell is essential for configuring some
settings in Exchange 2007 and Windows Server 2008.
- PowerShell could be described as a modern day DOS. Indeed a
classic way to get started is simply to continue using DOS commands but
in the PowerShell command-line. You can also issue built-in
commands such as ping or ipconfig from within PowerShell.
In summary, PowerShell has lots of gears. The good news is that
EVERYONE can test PowerShell in first gear. The basic commands are
short, powerful, and easy to understand, for example: get-service.
Or get-service | where-object {$_.Status -eq "Running"}.
Two more pieces of encouragement, PowerShell's help is wonderful, from
the previous example just try: help get-service. Also troubleshooting
errors is easy, just read the on-screen line number - very carefully.
I encourage you to learn PowerShell because it will save you time when configuring or
interrogating Windows Server, Vista or XP. Previous generations found DOS
commands a life saver in managing their operating systems. But the
advance of the GUI made the dark world of DOS superfluous. However, in a surprising
development, GUIs are becoming a victim of their own success; there are so
many windows and menus that techies cannot find the setting they want
quickly. Many Microsoft aficionados realize that after all, there was
merit in a UNIX style command-line. PowerShell delivers a huge payload
from just typing a few verb-noun commands.
If you don't have at least a working knowledge of PowerShell, and the
basics are easy to master, then you are going to get a sense of modern
operating systems leaving you behind. So learn the rudiments of
PowerShell, and keep up-to-date.
The secret of plucking up the courage to learn PowerShell is to realize
that it is not just for programmers and developers. Ordinary
administrators can soon use PowerShell to extract all sorts of information
from their operating system, for example, which process are running, the
last 20 errors in the system eventlog. It won't be long before they
are issuing commands to create Exchange mailboxes, or change a batch of
users' properties.
- If you do try PowerShell you will gain instant success and gratification. This is the
easiest computer language to get started. You will soon move from
basic commands to short scripts.
- It may therefore seem strange when I follow-up by saying, 'You will
never become an expert at PowerShell'. The reason is that,
PowerShell has all the complexities of a programming language, and
ordinary techies won't have the time, or the need, to master the
developer side of PowerShell.
- Learning PowerShell is both fun and satisfying. Moreover, it
will truly make you better at your day job of managing a Windows operating
system.
Calculating IP Address
ranges is a black art, which many network managers solve by creating custom
Excel spreadsheets. IPAT cracks this problem of allocating IP addresses
in networks in two ways:
For Mr Organized there is a nifty subnet
calculator, you enter the network address and the subnet mask, then IPAT
works out the usable addresses and their ranges.
For Mr Lazy IPAT
discovers and then displays the IP addresses of existing computers.
Download the Free IP Address Tracker
Installing PowerShell
In my opinion PowerShell is the 3rd most difficult Microsoft program to
install. However the task becomes easy once you realize that
PowerShell needs a specific version of .net framework for your operating
system. To be fair, the PowerShell installation prompts you for .net
during the setup.
It also helps if you realize that from Windows Server 2008 onwards
PowerShell will be a part of the operating system. You just choose
whether to turn this 'Feature' on or off. Consequently XP,
Windows Server 2003 and even Vista are in a transitional state where you
need to install PowerShell and .net framework, which then become part of the
operating system, (and not an independent utility). Incidentally, this
makes an uninstall more of a challenge than your average third-party
utility.
This Week's Challenge
My challenge to you today is to go to Microsoft's site and download the
version of PowerShell and .net Framework for your operating system.
Here is the PowerShell download link.
Guy's Sadness at the Present State of PowerShell
What makes me sad in January 2009 is that we are on the cusp of
PowerShell version 2; yet to save conflicts we must stick with v 1.0 for
production machines, and only use the CTP (beta) version 2 on test machines.
Microsoft awarded me an MVP in PowerShell. While I regard this award as
the greatest of my numerous academic achievements, I choose not to display
the MVP logo on my site. My reasoning is this:
All the other MVPs are truly wiz kids with deep technical knowledge; I am
just someone with a mission to introduce non-technical people to PowerShell.
Technically, I am not fit to lick the boots of other MVPs. However,
no-one is more passionate than I in persuading people to try PowerShell.
It really is both easy and a joy to learn.
In some quarters it has become fashionable to knock MVPs. I would like
to take this opportunity to answer such criticism and give an insiders view
of the MVPs. They are indeed a disparate bunch of techies, some MVPs
are even teetotal! It may also surprise you that when we meet
Microsoft staff, MVPs are extremely critical and merciless in pursuing
weaknesses in Microsoft products.
As is usual at (MVP) conferences it's talking with the other delegates
during breaks that is the most useful part of the event. One delegate noticed
that all MVPs had one feature in common -
they are all givers. MVPs are givers of their time, and givers of their
expertise to help others. Some impart their knowledge via newsgroups,
others by running usergroups, I give to the computer community via this ezine and
via the material on my website. Lastly, the award is only for one
year, then it can be renewed, else it expires. This provides a
mechanism to remove people who no longer contribute, or who abuse their MVP
status in any way.
Where Next?
Once you have installed PowerShell, I will help you by publishing fortnightly articles
which cover the basics. I will provide worked examples illustrating how PowerShell can
operate at that divide between work and pleasure. You can also see
previous articles on the Computer Performance website.
If you are looking for handy network utilities, try some of the free downloads at
Tools4Ever
If you like this page then please share it with your friends
See more Microsoft PowerShell tutorials
• PowerShell Tutorials •
Methods • Cmdlets
• PS Snapin •
Profile.ps1 • Exchange 2007
•
Command & Expression Mode •
PowerShell pipeline (|) •
PowerShell 'where' •
PowerShell 'Sort'
If you see an error of any kind, do let me know. Please report any factual mistakes, grammatical errors or broken links, I will be happy to not only to correct the fault, but also to give you credit.
|