Inventory many Windows servers for PowerShell existence/vers

by yooakim at 2013-02-21 23:43:19

I’ve probably missed something simply… so bare with me if this has already been answered or is well documented. I haven’t found out how to do it…

What I need;

We have a few hundred Windows servers of various age. From 2003 and onwards. We need to bring all of these up to date in terms of managing and we would like to get an inventory of which of these machines have PowerShell installed.

Since we can not rely on PowerShell; what is the easiest way to query these machines to find out if PowerShell is installed?

WMIC? Other ways?

I’d appreciate any good tips on how to easily do this!

Cheers,
Joakim
by Klaas at 2013-02-22 00:21:53
You could use Gt-WMIObject Win32_Product, but that is rather slow and is dependent of various firewall settings.
Maybe it’s easier to check for the executable:
Test-Path '\$computer\c$\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
First determine the way you feed your computers: are they all member of a domain and are you a domain admin? Use Get-ADComputer -Filter *. Or do you have a .txt or .csv with all computernames? Use Get-content or Import-Csv.
I would do a check if the computer is pingable first and if so test for the path and export the results to a file or table, since it’s very probable you’ll have to run this several times unless all computers are on all the time or you send a Wake On Lan first.
On the most recent OS you’ll have both a 32bit (under Program files (x86) and a 64bit Powershell.