Jump to content

PC inventory software


1boredguy

Recommended Posts

Hello,

I would like to audit/inventory (pull all hardware and OS info) all my domain workstations.

I've found a few apps that do the job, but are fairly expensive.

Does anyone know any good FREE apps? If there isn't any decent free ones available, perhaps any recommendations on a fairly priced one.

Thanks

Edited by 1boredguy
Link to comment
Share on other sites


Nothing against everest (nice app), but I wouldn't necessarily go that way. 20$/PC isn't too expensive, but as your network gets bigger, that starts to get like a fair amount of $$ (even with 50% rebates, if we included every PC in our organization across country with no rebates, we'd hit mid-6 figures... ouch! That's a lot for simple functionnality, really.) But if everest also does other things you need, it could be worth the price tag... Mind you, every admin utility out there seemingly does this (like Hyena).

If all you want is simple OS infos, perhaps some config and such (free disk space, installed apps, etc), but mainly hardware specs... It's something trivial to do using simple scripting. You could write a full blown app to do this (I made a multithreaded C# app that does this and more), but it's not necessary. Plain old VBScript can do the job easily (the worst part of it is really VBScript's very poor error handling - no try/catch blocks here can really bite you in the a** when a remote PC acts up...) Just look up the various WMI classes you need at MSDN. There are tons of sample scripts/code out there (MSDN has a pretty good scripting center too), and there are even utilities that will create most if not all the code for you (Scriptomatic, WMI code creator, etc). Google could find you lots of such scripts (ppl have been doing this for years).

The script itself is rather simple and straightforward:

-enumerate PCs (using LDAP:// provider for ADSI, or WinNT:// provider for NT domains...)

-ping PC (continue if pings OK, if doesn't resolve or timeout then don't)

-run your WMI queries againt the remote PC (need admin rights on remote PCs)

-log results to text/csv/xml file, update database, whatever you want

WMI is *way* under-utilized (especially by tech folks like here, and most admins I see). It's pretty powerful/handy/time-saving. It's not just "read-only" - you can change settings on remote PCs and such with it, or spawn processes remotely and such - which is another option in your case. You could use a script to run devcon.exe on remote PCs, which might give you enough infos.

If you decide to use scripting, there's a free script debugger (the tricky part is, you gotta run your scripts followed with the //X switch - yes, 2 slashes - and it'll launch it for ya, if you're lazy just make a registry entry to add a contextual "debug" menu entry when you right click vbs files). There's lots of stuff out there you can copy/paste from or just use for inspiration. Lots of ppl could help you with this (just ask away if you need help...)

If you decide against scripting and would rather make a real app, you have endless possibilities of what to use. Personally, I use C# mainly, but lots of folks also use VB.Net or other languages. Perhaps the learning curve might be a bit higher (if you're not a programmer, don't know OOP concepts, don't know the frameworks, etc), but it's FAR more powerful and flexible (VBScript doesn't compare at all). If you wanna try it that way, Microsoft Visual C# Express is free and quite good (System.Management is what you're looking for here)

If you look around enough, you might even find pre-made apps that do all or most of this already (on sourceforge perhaps). Google's your friend... Either ways, a little knowledge and a little sweat goes a long way. For the price of everest we could have hired a programmer for like 10 years, whereas you can whip up half decent in a few hours even if you're not a programmer (chances are doing the paperwork/going thru corporate red-tape, etc would take longer - to buy the pre-made solution i.e. MORE work!) It's tailored to your needs, expandable, reusable, customizable, you have the source, no licensing issues (no need to buy more licenses as you buy more PCs either, or even the bother of having to count licenses every now and then - waste of time), you can fix bugs yourself right now in a few minutes (instead of hope for some company to get around to it and release a new build in a couple of months), ultimate flexibility/interoperability (reuse data elsewhere, interact with anything, whatever), etc...

And even if you were no programmer at all you could still hire someone to code something like that for quite cheap (how much one can charge for a easy 15 minute job of mainly copy and paste needing only a few tweaks that requires no real coding knowledge?)

Link to comment
Share on other sites

I may be way off, and you could be looking for much more detail, but would using the free tool PSInfo from www.sysinternals.com get the job done ? With the switches it can read tons of information about a remote PC.

Link to comment
Share on other sites

What about this FREE one:

http://www.lansweeper.com/ls/default.aspx

jaclaz

Haven't played much with it, but not bad so far (only toyed around their demo web interface so far though - haven't tried the .NET client app). Like Everest, they're not really completely free either - their latest/best version i.e. the one being demoed - is 250€ and otherwise is erm... "donationware". Oh, and donations of 100€+ required even for the free version if you need any support (bugs or whatever). More € again if you want/need customizations... It better not get too expensive, otherwise one might as well get SMS instead. No idea what the old version is like... What features are lacking, etc. You're stuck with some old version which will likely get no updates (expect only paid support)

There are a bunch of other downsides besides price too: old and crappy MSDE or SQL Server which hopefully you already have licenses for - and SQL Server only installs on a expensive *server* ed of windows excluding the cheap web server ed, and don't forget CALs - more $; *might* work with express ed but not supported (not mentionned), but NO other DBs are supported. The client needs to be run as part of the login script (I honestly don't care much for that... ran every logon uselessly, relies on client-side dependancies, etc). No idea on how their "rich" (i.e. non-web) client is, there aren't even screenshots available of it, and downloading/intalling the whole thing (client & server) to get an idea of what it's like is too much trouble. Hopefully it has more features than the web version, namely reporting, as the web ed only displays one category of info of a single PC at a time, no exporting features or anything (handy, but clearly lacking basic features). Their web interface needs IIS to run as well, hopefully you already have a Win200x web server (with enough resources left - the scanning part may be somewhat intensive too @ 25 simultaneous scans), otherwise lots more $ (and CALs, etc).

While it looks not bad, I'd honestly rather do it myself. Completely free, you have the source code unlike this one (in the language of your choice too), so you can do the required changes, tweaks and bugfixes for free (which you're likely to need/want in the long run). And it doesn't take long to code something basic - perhaps quicker than it would take to install, deploy, integrate, debug, configure and test this commercial solution (need client apps deployed, login scripts modified, some app installed on IIS, new database on SQL Server, etc - lots to do). I would personally rather have a client app that does the scanning (in mosts cases, there are exceptions). Run it on demand, no server part to install/maintain/upgrade later/whatever, no expensive server soft req'd (SQL Server + a couple Win2003 licenses and CALs would be a few thousand $), keep data in a local DB of your choice or XML files or whatever - whatever you want. You pick the DB schema too (haven't peeked at their DB's schema, but I'm kinda scared to). Export as full featured "recursive" XML and then transform to a simple and clean DB schema, do auditing, import in excel/access, whatever you want. Far more flexible IMHO.

I've seen a bunch of similar apps too. And while I'm no fan of PHP (more like I despise it) nor MySQL (second worst DB after MS Access IMHO), there are apps like winventory (on sourceforge) which do most of the same, truly cost nothing at all, runs on a totally free LAMP stack like XAMPP (runs on non-server OSes too), etc. It's easy to modify. And reporting wise, it's no worse than the other (i.e. pull raw data off DB if you want something else - same deal). No need for deploying client apps, adding a new app (and delay) to all the logon scripts, etc. If all one wants is hardware details or such, I would say this is sufficient and in pretty much all cases cheaper (and hey, worst case scenario, one could easily modify their scanning vbscript to fit their needs). Should be easy to port to another DB too like PostgreSQL or such (in a matter of minutes), something the other tool won't let you do (don't have the source). It's also an active project, which means you can expect it to get better over time (free updates/improvements/new functions) and should be easy to upgrade (the upgrade to the current version is 250€ - a one time deal, every future upgrade means more $)

A quick search on sourceforge alone brings up many more too: inventory, zCI, OCS inventory, etc. I'm sure google has even more to offer... (including non open-source ones, like lansweeper)

Edited by crahak
Link to comment
Share on other sites

Wow. Thanks for all the great replies! Over the week, I have tried all the suggested software - and more. I've tried expensive, then I tried cheap and free. Unfortunetly, they either cost too much or does not do what I want. I decided to keep it simple.

I just need...

1. Free

2. To scan the domain and pull info from all available workstations.

3. Export the info into an .xls file.

I now agree with crahak: that a simple script is all that I really need.

I've found some interesting scripts (hotscripts.com), and I understand the gist of the scripts. I don't, however, have the expertise to create/modify the proper script (obviously).

I've attached a sample picture of a report generated by Kaseya. I need a final product that looks like that.

I have played around with MSINFO32, but I can't figure out how to get the output the way I want it.

Any replies are appreciated!

post-29225-1150763952_thumb.jpg

Link to comment
Share on other sites

You can very easily do that using vbscript (not the best pick like I mentionned before, but it gets the job done... mostly?)

First you enumerate your domain (sounds like you're using a NT domain by what you said), i.e. using GetObject("WinNT://DomainNameHere") then filter it, i.e. .Filter = Array("Computer")

Then ping 'em ("ping.exe -n 1 ComputerName"), and if responsive:

GetObject("winmgmts:\\ComputerName\root\cimv2") [might need to impersonate]

then exec your WMI queries against the classes you want (they're all documented VERY well on MSDN)

.ExecQuery("Select * from Win32_WhateverClassYouWantJustLookitUpOnMSDN",,48)

and then read the properties you want, and finally write all that text to a CSV file (since you want an excel sheet)

It's easier than it may sound.

What you write to the CSV file (from the pic you posted):

-first colum is just the name of the PC you're polling from (that you got from the WinNT:// query)

-IP address (of first NIC polled...) like such

-mfg and product name usually are empty... but you can still enumerate them to see if they return anything, like this

-then OS info

-processor info Having IP of first NIC only might not be a big deal, but here you'd only write the first CPU to your CSV file, and no mention if it has HT, is DualCore or anything either (there are ways to do this, i.e. Win32_Processor.ProcessorId returns EAX & EDX registers of CPUID called with EAX=1 - bitmasking does the trick; few apps bother with this unfortunately, even the commercial ones!)

-enumerate RAM

-logged on user

(checkin time? sounds like the datatime at which it was scanned)

You just need to lookup what the CSV format is like (comma separated... find one and look at it in notepad) to see what you need to write to your output file.

I don't have a pre-written script to do all this for you unfortunately (don't have too much free time either). If you can't write it yourself, or can't adapt one, or that no one finds enough spare time to write one for you, then your best bet is likely to find an app that outputs tons of infos and select just the one you need from it.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...