AidaNet is an XPath script that displays XML information generated by the freeware tool Aida32. AIDA32 is a professional system information, diagnostics and benchmarking program running on Win32 platforms. It extracts details of all components of the PC. It can display information on the screen, print it, or save it to file in various formats like HTML, CSV or XML. For corporate users, AIDA32 offers command-line switches, network audit and audit statistics, remote system information and network management. Ensure you have at least version 3.83.
Download Aida here.
The good news is that you don't have to run Aida on each computer to make the inventory.
How to create XML files? (The demo is provided with only a few XML files).
Just add this line in the user logon script:
shell "cmd /c \\Myserver\aida\aida32 /R \\Myserver\aida\Reports\$hostname
/XML /AUDIT /SILENT"
Then just wait a few days, ensuring that everyone login on the network and you can know what programs are installed on your company, who has the bigger RAM, what is the most used 'default printer' and so on.
Using the code
AidaNet doesn't have any knowledge of Aida XML structure. The program uses a script to display information. For each useful information you want to display, add an
Alias entry on the AidaNet.xml file using XPath string. Since an XML can be complex (the case of Aida files), AidaNet allows you to define sub
<Alias Name="OS_NAME" Title="Name"
Path="Item[Title='Operating System']/Value" />
<Alias Name="OS_SP" Title="Service Pack"
Path="Item[Title='OS Service Pack']/Value" />
<Alias Name="PC_NAME" Title="PC Name"
Path="Item[Title='Computer Name']/Value" />
<Alias Name="USER_NAME" Title="User name"
Path="Item[Title='User Name']/Value" />
<Alias Name="CPU_FULL" Title="CPU Name"
Path="Item[Title='CPU Type']/Value" />
<Alias Name="RAM" Title="RAM"
Path="Item[Title='System Memory']/Value" />
<Group Name="OS" Title="Operating Systems">
Alias is then a sub alias of the
Group[Title='Computer'] path, itself a path. This
Alias is also part of the
Group Name="OS". All
Alias of a group represent a single value. You can't filter computer having a specific service pack, without associating it with the type of OS (NT4 SP1 and XP SP1 are different). It's possible to group
Alias that don't start at the same level, but alias occurrences must be the same.
Since version 1.5,
Group tags can be defined only in the
Config tag, no more in
name attributes in
Group tag are also changed to
Text. Sorry for those that already use 1.0 version.
The first thing to do is to modify aidaNet.xml file. The
FolderPath value should point to where you placed your Aida XML files. Then start the program and let start collecting info with the File/Analyse menu. AidaNet will try to find the aidaNet.xml file in the current folder. If not found it will open it 2 folder levels up.
Using the demo
The "filter selection" grid (on top) displays all Aliases and Groups names. The "corresponding files" grid (on bottom) columns grids and the "detail" grid (on right) are defined in the same XML script file (
FileGrid tag and
DetailGrid tag respectively). "Filter selection" and "corresponding files" columns grids can be sorted.
You can export data in the 3 grids to a text file. Tabulation is used to separate fields on the same line. The export saves only what is visible on the grids, because saving all PC information where 'Internet Explorer " is installed can produce many pages of report.
Points of Interest
AidaNet can be used for other kind of XML files, like XML book files. It's a nice example of XPath use. It's a FLWOR statement (FOR-LET-WHERE-ORDER-RETURN) like program (still not available).
This program uses 2 ways to read XML files:
XPathDocument to read AIDA files. XPath is then used to retrieve values.
- XML schema. Microsoft XSD can generate C# code from schema. See XML Data Files, XML Serialization, and .NET or Search for "XML serialization" in CodeProject for more information.
Next version will provide an XPath editor.
The project comes with a
Listview helper class that allows column sort with up and down sort indicator picture. This class is not another
ListView subclass, you can use it with existing code. Sample use:
public ListViewSorter MySorter ;
MySorter = new ListViewSorter (MyListView) ;
MyListView.ListViewItemSorter = MySorter ;
MyListView.TableArrows = imageList1 ;
MySorter.SortBy (MyColumnHeader , SortOrder.Ascending)
The same class allows to resize all columns. Microsoft provides const for optimizing column width based on the header OR items, but not both.
ResizeColumns function resizes all columns to the largest width.
- February 2004 : Version 1.0
- March 2004 : Version 1.5 : Added validations, text export and uses XML serialization