I need a small software, piece of code to be embeded into a bigger project later on.
*** Please do not bid if you are a company who charge market rates, for your rates I can a hire a local programmer myself. ***
This code needs to fetch every possible information about a computer and output it either :
1. to a file - either XML, CSV, INI, or any other format you see fit (please state which).
2. Send it via sockets to a server (will be built at a later stage).
Note: The goal is for all the information to be passed on to the server (which will be built at a later stage) and saved under some form of DB system.
Information to be extracted :
1. all heat sensors information (cpu, hdd, etc), including FAN speeds.
2. All existing peripherals exact models of LAN card, Audio card - MUST NOT be taken from driver name! , CPU, Memory type, # of DIMMs (which DIMM contain what memory, what manufacturer), Motherboard (exact model to be identified either by fetching it from the computer or parsing it according to the the BIOS string or any other information found), etc..
3. OS info (version, SP level, pending updates, is windows update active? when is it set to run? firewall status, anti-virus status (installed, not installed, not up to date, etc..)
4. list of installed software (EVERYTHING) including windows updates installed which will be listed separately.
this needs to be categorized, I will give specific list with category names and I need the option to add more myself.
5. fetch users existing and verify if their passwords are safe (how complex they are, if they are empty, or short), if there is no way to fetch it, then at least check to see if its empty or one of the simple passwords I will list on file (for example - 1234567, etc..) - of course I need an option to modify the list in the future.
6. fetch DUN passwords (windows dialer)
7. fetch list of programs set to start on start-up(can be fetched by reg keys).
8. Anti virus program installed, which version (some method to identify it no matter what anti virus is installed, or maybe identify it for the most common anti virus programs).
9. Drive info - Manufacturer, size, SMART info, how it is partitioned, which file system and how much empty space on each partition.
Program needs to be able to run in two modes :
1. Full scan - will fetch all this information.
2. Partial scan - will be run after one full scan has been executed, information exists on file and will save changes (e.g cpu, motherboard, etc,, stays the same).
Program will not have GUI, will be run by command line and will output errors (if any) into :
1. A log file
2. Sent to server (in the future).
Program should NOT hang the CPU, I prefer it to take 1% CPU and take 1 minute instead 10 seconds with 50% CPU.
User should not feel this program running !!!
I am a programmer myself, this can all be accomplished quite easily by the experienced programmer.
Most information can be fetched without a problem using windows WMI.
Currently I do not care too much about which programming language will be used, I require that you state your overall experience in programming, and at that specific language in detail.
I do not care about MS certificates or any certificates for that matter, All I care is that you do a good job, the code is clean, readable with comments so someone like me (A programmer, without knowing a specific language) can read it and understand what each portion does.
Program should not be contained within ONE file, but in separate files for each category listed above.
Object oriented is preferable so it can be fit inside a larger project (please indicate if this will be objected oriented or not).
Time is not an issue, BUT needs to be reasonable.
Please post a bid only if you are sure you can make this happen, do some research before you bid.
* Code MUST NOT use any 3rd party external tools whatsoever *
Program must not install anything to run (e.g .NET framework on XP)