Monthly Archives: October 2009

Windows 7 – Seventh One is a Seventh WON

Windows-7-Logo

This is dedicated to the entire Team at Microsoft behind the Development, Marketing, Production of Windows 7 including the Eight Million People worldwide across various countries who downloaded, used the Betas and RC’s providing Feedback to make the product what it came to be on Launch day yesterday.

You the Community made this product what it is

You can Sing this (Believe it or Not) to “Iron Maiden” and “Seventh Son of a Seventh Son”

But even without words, I think it’s fun to read.

"Seventh One is a Seventh Won"

Hear the tale from Binary minds
Of a code that had shaped
Right down the lines
The bits and the bytes following through
The Beta, the RC’s RTM’s too

See them all, the many download
The perfect, the shaping, unbroken code
United as one, a goal in their eyes
8 million strong to strengthen the prize

[Chorus:]
Seventh One is a Seventh WON
Seventh One is a Seventh WON
Seventh One is a Seventh WON
Seventh One is a Seventh WON

Redmond stands back, listening well
The comments, the feedback, no one shall quell
Adjusting and shaping, they work through the night
A thing of pure beauty, it shines it their sight

[Chorus:]

Seventh One is a Seventh WON
Seventh One is a Seventh WON
Seventh One is a Seventh WON
Seventh One is a Seventh WON

Today is launched the Seventh One
An O/S pure the Seventh One
And we who helped the Seventh One
It has the Power to Create
It has the Power of Shell to Unite
It is our choice O/S
Let it be compiled
Let it not be undone

FacebookTwitterGoogle+Share

Ode to Windows 7

Windows-7-Logo

O Windows 7, how do I love thee? Let me count the ways

I love thee for thy cleaner core; lending speed to my flight,
Booting faster, launching quickly,
rocketing through the night.

I love thee for thy WinRE
to save me in the day

I love thee for the for thy Windows Shake,
tosseth my problems all away.

I love thee for thy compatability, extending to the past
Launching away whatever that I cast

I love thee for thy security, protecting all that is mine
Keepeth out troublemaking, rotten little swine

I love thee for thy Gui, an interface to behold
Dancing quickly, revealing all, in colors oh so bold

But mostly I love thee Windows 7, as the day it carries on
For being simply the nicest, one to come along

FacebookTwitterGoogle+Share

Using Powershell to gather MAC Addresses of Network cards EASILY – Part 2

 PowershellBIG

 

So last time we left you with a partially useful Powershell line.  The ability to type in a computer name into a variable and have it list all the Physical network cards attached to the System via WMI (Windows Management Instrumentation).

The end result of this desired operation would be to have a list of all the MAC addresses on your PC’s.   For what purpose?  Possibly setting up SCCM 2007 or maybe even to aid in securing DHCP by having a list of MAC addresses in use and only only handing out IP’s to registered network cards.

Or maybe you just like collecting MAC Addresses :)

But to make this truly useful, we need a list of computers.  Now if I (or you) have to go to each computer to GET it’s name, that completely defeats the purpose.  But if you have Active Directory on your site this really gets easy.   Any version will do for Powershell.

 

So our first piece involves having the FREE Quest Active Roles Management Shell for Active Directory for Powershell.  We’re going to use the “GET-QADCOMPUTER” to get a list of systems in Active Directory, because well, that’s GET-QADCOMPUTER DOES and does very well and simply.

 

GET-QADCOMPUTER

 

That of course will dump a list from 3 to 300 lines of computer names depending on the size of your network.  But we don’t want to see the pretty list.  We need that list to work for us.  So we’re going to store that information away in a Powershell variable.

 

$COMPUTERLIST=GET-QADCOMPUTER

 

Once we have this list we can select and pipe each item from this list into the Powershell commandlet from before

—— PRINTMACLIST.PS1 ——

$COMPUTERLIST=GET-QADCOMPUTER

FOREACH ($PC IN $COMPUTERLIST)
{

Get-WmiObject WIN32-NETWORKADAPTER -computer $PC.NAME | where { $-.PhysicalAdapter.CompareTo($FALSE) } | Format-table @{Label="ComputerName"; Expression={$PC.NAME}}, NAME, MACADDRESS,

}

——– END OF SCRIPT ———–

 

Now this is all fine and dandy.  A printed report on the screen.   But the whole point of Powershell and Computers and Life in general is try and SAVE work, like avoiding typing in that silly list.   So instead of using “FORMAT-TABLE” we’re going to “SELECT” from the OBJECT the PROPERTIES we want so we can EXPORT it to a CSV (Anybody see where I’m going with this?  Yeah I’m that obvious eh?)

 

So the same script but swap out “FORMAT-TABLE” with “SELECT-OBJECT” which allows out to pick out what we want.  Then we’ll use EXPORT-CSV to pipe all that output into a nice file which should at LEAST save on typing

 

—— EXPORTMACLIST.PS1 ——

$COMPUTERLIST=GET-QADCOMPUTER

FOREACH ($PC IN $COMPUTERLIST)

{

Get-WmiObject WIN32-NETWORKADAPTER -computer $PC.NAME | where { $-.PhysicalAdapter.CompareTo($FALSE) } | select-object NAME, MACADDRESS, @{Label="ComputerName"; Expression={$PC.NAME}} | Export-csv C:\MACADDRS.CSV

}

——– END OF SCRIPT ———–

 

And now what you’ll have is an easy way to pull out the MacAddresses, list of Physical network cards INCLUDING the Computer name on each line.   The interesting part is because this is mostly based on WMI you could easily add on Filters to only show computers which are Workstations.  And With GET-QADCOMPUTER you can even filter specific OU’s containing computers.

 

Enjoy the Power

It’s Easy and It’s Free

 

Sean

The Energized Tech

FacebookTwitterGoogle+Share

Singing Nerds

If you’re a geek that writes tunes for fun, even dares to sing them or Good Grief, PLAY an INSTRUMENT!

You’re not alone.

Here’s a fellow who did a Video called Qbasic Nerd

and as well Wrote an original song called “Farewell to Dos” . You can download it HERE.

 

Are you a guy like him or me?  Do you do this for fun? Professionally?  Just cuz you had a beer? Or three?

 

Email me ye110wbeard@hotmail.com if you have links.  I wouldn’t mind putting together a list we can all share and help get rid of those stress filled days once and for all

Cheers

Sean
The Energized Tech

FacebookTwitterGoogle+Share

Using Powershell to gather MAC Addresses of Network cards EASILY – Part 1

 

PowershellBIG

 

I was thinking, If you wanted to REALLY do a good deployment of Windows 7 (or Vista for that Matter) you’d want to have a full Zero Touch installation scenario.   A Zero Touch Installation (to put it in a a VERY general description) allows you to “Flip the Switch and just install handsfree”.

This is where if you spent the time with Microsoft Deployment Toolkit 2010, Systems Center Configuration Manager 2007 and tie in a Windows Deployment Server you can deploy 10’s 100’s or 10’s of 1000’s of workstations effortlessly.

And with Windows 7 and Windows Vista tied into this scenario, you don’t need to maintain and keep re-updating the images.  Just add or change the needed pieces!

But to get something like this started (at least from what I understand) you’ll need a list of MAC addresses and machine names.  

There’s a lot more than that, and if you had a small network of 10 computers, it’s not so difficult.

Or is it?  Do you want to climb under every desk and dig for numbers? or Sit there logging it, typing in IPConfig, writing down the info, hoping you have it right…

Yes if you’re a large corporation, you probably have inventory software, but unfortunately that’s not always correct.  Network cards get changed.

But in Powershell, well this is very easy to do

You’ll find I have a huge theme in Powershell, using it to get the information I need.    Because it just does it so beautifully and so simply

 

And so INEXPENSIVELY! :)

 

So one of the things you will hear over and over and over is how Powershell and WMI are best friends.  And they are.

WMI – the “Windows Management Instrumentation”, contains a LOT of information on your PC, your operating system, right down to the CMOS and how Many sticks of Ram you have.

In our case we’re going to ask Windows what network cards we have using

 
Get-Wmiobject WIN32-NETWORKADAPTER

Now this command simply lists EVERY Network Adapter, both REAL and Virtual, Including CiscoVPN, Tunneling, loopback.  To be honest a bit TMI (too much Information)

Really all I want is a list of the PHYSICAL adapters.  And this is done very easily too.  If you run a GET-MEMBER against this output you’ll find a pretty obvious Property called “PhysicalAdapter” with a Boolean True/False.  Want to guess what it does?

If you run tack on that property to our last command

Get-Wmiobject WIN32-NETWORKADAPTER | Foreach { $-.Name, $-.PhysicalAdapter }

You’ll end up with a basic list showing all the adapters and whether they are PHYSICAL (True) or NOT (False)

So this is great but Ideally I’d like to take this into a useful form.  So with a little help of the Format-List command and specifying properties.

Get-WmiObject win32-networkadapter | where { $-.PhysicalAdapter.CompareTo($FALSE) } | format-table -property name, macaddress

Now to make it TRULY useful, I’d like to have it mesh the name of the computer into this on the output which would make things easier for me as the Administrator to know which machines have these MacAddresses.  Well that part is easy.  I already know this particular computer name.   But we’re going to prepare this script to be universally useful.  I’m going to assign the name to a variable.

$COMPUTERNAME=’localhost’

Get-WmiObject win32-networkadapter -computer $computername | where { $-.PhysicalAdapter.CompareTo($FALSE) } | format-table -property @{Label="ComputerName"; Expression={$computername}}, name, macaddress 

Ok yes, that’s a cheat but you’ll see why this is useful next time.   What has been done is to use the GET-WMIOBJECT to pull up that list we had before.  We’re piping the output to the “FORMAT-TABLE” listing only the Name of the card and it’s Macaddress with a computer name.  I’ve also added in a Custom column into the list showing the present Computer Name.  Why is this going to help for one machine.

 

That’s for Next time I’ll show you how to tie THAT into Active Directory to get a list of your computers and have Powershell do all the work for you. 

 

Sean
The Energized Tech

FacebookTwitterGoogle+Share

Microsoft Deployment Toolkit 2010

I am still amazed that this is free from Microsoft.   I’ve just spent a few hours messing about with it.

And whether you’re Small Business, General Field Technician or in the Enterprise.  You can USE this without headaches.  You can USE this for FREE.  You don’t even need high end hardware to play with it!

The Microsoft Deployment Toolkit 2010 is a free download from Microsoft that allows you to pull off a NUMBER of things easily.

 

You can use it to Customize your operating System more readily for your Environment

You can create a standard image to install on Client sites

You can use it to capture User configuration information before deployment

You can have all the drivers ready in one environment

Why you can even tie it directly into a Windows Deployment Server on Server 2008 with EASE

 

And it has POWERSHELL scripts so that you can Automate more easily!

 

Yes it does a pile of things

image

What you’re seeing right now is the very screen from “Getting Started” in the MDT 2010.    It gives you a quick breakdown of the step by step process used in deployment.  What is nice is as you click on each step in the presented photo it IMMEDIATELY

image image

Brings you to detailed instructions relevant to that step

And yes it can get REALLY complex.   But it doesn’t have to be really.  It’s meant to be the most powerful tool in your deployment arsenal and yet the simplest if need be.

 

And do you know how hard it isn’t? (Yes strike me down, a double negative hath been uttered!)

 

Create a new Deployment Share from “Actions / New Deployment Share” or Right Click on “Deployment Shares” and choose the same option.  Follow the Step by Step wizard.   You have various options you can select or de-select for your Deployment Share including the option of asking Users for the Product key or Admin password (depending on your environment it might make sense with OEM Stickered software? 

 

image  image   image image image  image

 

You then import whatever Applications, Operating System Media, Drivers, Service Packs You’ll need…

 

image image image image

 

Create a “Task Sequence” which when you link up with a Windows Deployment Server allows you to “Boot and Choose” from PXE.   These Sequences STOCK are “Standard Client Task” and “Standard Server Task” which are good for instaling a clean O/S with Applicat
ions, “Sysprep and Capture” which is needed if you’re going to capture a running “Gold O/S" including customizations and store it as a Master on a server.  BTW, this is FAR better than standard Imaging since it gives you a proper, hardware independent clean install everytime.  “Lighttouch OEM” would be a typical deployment OEM’s would use and is preconfigured for those scenarios.  “Standard Client Replace Task” allows you to boot off PXE and Capture the profiles of the user or Users on a workstation, and blank it out afterwards.

Also, note none of these are “HARDCODED”, they are Predefined templates you can take and customize to meet YOUR needs, fully documented within the Application MDT 2010

 

image

 

And then you can work with various “Selection Profiles” and “Media” to create the Standard install environment to work from

 

image image

 

And of course after running each task, it automatically creates a Powershell script so that you just edit and run that for the next time to standardize how you do it.

image 

Why a Powershell Script? 

Let’s just say you are a field tech, and you’re running MDT 2010 and WDS on various client sites with unique applications and Operating system needs.   The nice thing, is because ALL of this is Powershell based, you can carry a USB key with you with the standard tasks you normally use to make MDT 2010 customized the way you want, have the MDT 2010 and Windows AIK software ready, and in minutes create a NEW deployment Environment referencing the client’s OWN operating System and Applications.  The names of the MSI files will be different as will the source for the Deployment, but the process is the same and therefore just a few edits away.

 

And I can tell from experience, having the ability to create a standard hardware independent deployment makes *YOU* smarter, faster and more cost effective to your customers!  Or better yet, you can bill your standard rates but have the client up and running completely with a new Deployment in a FAR shorter time, which makes THEM more productive and HAPPIER!

With something like this in your bag of tools?  You can deploy 50 copies of Windows 7 as easily as you can Deploy Five!

 

So what do you need to get started?

MDT 2010 (Free download from Microsoft)

Windows AIK for Windows 7 (Free download from Microsoft)

 

And maybe a Saturday afternoon with a glass of Iced Tea to play :)

 

We’ll deep dive into this a bit more, but download it, try it, EMPOWER YOURSELF!

 

Sean
The Energized Tech

FacebookTwitterGoogle+Share

Powershell Resources Online

PowershellBIG

So each Month at ITPro Toronto we have the Powershell “Script Club” session.   I thought what I’d do for you the membership is list those resources here in the Blogs.  You can save the Hyperlink and I’ll try to keep it updated as time permits.   The List may appear short since I’ll try to get you what I personally consider the Master links to Powershell online.

HTTP://BLOGS.MSDN.COM/POWERSHELL

Blog Postings made DIRECTLY by the very team at Microsoft involved in Developing and Producing Powershell.  Think Microsoft doesn’t listen?  Think again.  You’ll find Jeffrey Snover, the key Architect behind Powershell is behind a lot of these postings as are many of his team.  They actively go out and listen to the Powershell Community and users and search the internet for comments, critique and ideas for how Powershell should be and IS used.   They look for NEGATIVE comments too.  Some day I’ll tell you a story of how “Somebody” at Microsoft Searched for Powershell and “HELL” and got the pleasant surprise of his life.

 

HTTP://WWW.POWERSHELLCOMMUNITY.ORG

Here is your one stop repository to Powershell.   You’ll find the bulk of the best of the best and their blogs centralize here.   More Powershell information than you can shake a stick at!

 

HTTP://WWW.POWERSCRIPTING.NET

The PowerScripting Podcast done by Jon Walz and Microsoft MVP Hal Rottenberg.  Two guys absolutely passionate about Powershell that interview the who’s who of the Powershell community (including the guys straight from Microsoft).  The podcasts are sponsored and free to download.   Download the earliest podcasts and listen in on the way to work and soon you too will be a Powershell Guru.  They also Broadcast once a week LIVE on uStream so YOU TOO can ask whatever questions strike your mind.

 

HTTP://WWW.ENERGIZEDTECH.COM

Ok I do not consider myself an ultimate Powershell resource, but if you dig through my postings you’ll find I try to get the basics of Powershell out there so you too can get a feel for the Syntax of Powershell, maybe ideas and launch yourself forward from that point.  You can always reach me at sean@energizedtech.com and I’ll try to help out in whatever way I can.    Yes.  I love Powershell.

 

HTTP://WWW.BING.COM

Yes folks, just “BING” IT.   Do a search online for Powershell and even a few key words, and you’ll probably get the answer in minutes.  Or maybe get yourself pointed in the right direction.   You’ll find searching for #powershell in Twitter as well yields more results than you can imagine.  And most of the people in the Powershell Community will happily answer whatever your Powershell questions are.

 

HTTP://SOCIAL.TECHNET.MICROSOFT.COM/Forums/en-US/winserverpowershell/threads

And most importantly!  Forums within Microsoft!

Yes directly on Microsoft are support forums full of people with Powershell questions, answered by people in the Community and various Powershell MVP’s.  You’ll probably see Marco Shaw in here a lot!  One of the very people that pointed me down the Powershell path two years ago.  What a beautiful road it is too.  No matter the question, ask it!  It’s free and often responded in Rapid pace!

 

If you’re looking for more information here at ITPro Toronto for Powershell just email sean@energizedtech.com and I’ll see to it!

Cheers

Sean
The Energized Tech

FacebookTwitterGoogle+Share