AidaNet: 网络资源清单






4.13/5 (8投票s)
2004 年 2 月 2 日
4分钟阅读

61959

1260
用于分析多个 XML 文件的 XPath 脚本。
引言
AidaNet 是一个 XPath 脚本,用于显示由免费软件工具 Aida32 生成的 XML 信息。AIDA32 是一款专业的系统信息、诊断和基准测试程序,可在 Win32 平台上运行。它提取 PC 所有组件的详细信息。它可以将信息显示在屏幕上、打印或以各种格式(如 HTML、CSV 或 XML)保存到文件。对于企业用户,AIDA32 提供命令行开关、网络审计和审计统计、远程系统信息和网络管理。请确保您至少拥有 3.83 版本。
在此处下载 Aida:here。
背景
好消息是,您不必在每台计算机上运行 Aida 即可进行库存盘点。
如何创建 XML 文件?(演示只提供了一些 XML 文件)。
只需在用户登录脚本中添加这一行
shell "cmd /c \\Myserver\aida\aida32 /R \\Myserver\aida\Reports\$hostname
/XML /AUDIT /SILENT"
然后只需等待几天,确保每个人都登录到网络,您就可以知道您的公司安装了哪些程序,谁的 RAM 更大,哪个是使用最多的“默认打印机”等等。
使用代码
AidaNet 不了解 Aida XML 结构。该程序使用脚本来显示信息。对于您要显示的每个有用信息,请使用 XPath 字符串在 *AidaNet.xml* 文件中添加一个 Alias
条目。由于 XML 可能很复杂(Aida 文件的情况),AidaNet 允许您定义子 Alias
。
<Config>
<FolderPath>..\\..\\sample</FolderPath>
<Alias Path="/Report">
<Alias Path="Page[Title='Summary']">
<Alias Path="Group[Title='Computer']">
<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>
<Alias Path="Group[Title='Motherboard']">
<Alias Name="CPU_FULL" Title="CPU Name"
Path="Item[Title='CPU Type']/Value" />
<Alias Name="RAM" Title="RAM"
Path="Item[Title='System Memory']/Value" />
</Alias>
</Alias>
</Alias>
<Group Name="OS" Title="Operating Systems">
<Alias Name="OS_NAME"/>
<Alias Name="OS_LANG"/>
<Alias Name="OS_SP"/>
</Group>
</Config>
OS_NAME
Alias
然后是 Group[Title='Computer']
路径的子别名,它本身就是一个路径。这个 Alias
也是 Group Name="OS"
的一部分。一个组的所有 Alias
代表一个单一值。如果您不将其与操作系统类型关联(NT4 SP1 和 XP SP1 是不同的),则无法过滤具有特定 Service Pack 的计算机。可以将不同级别的 Alias
分组,但别名出现的次数必须相同。
自 1.5 版本起,Group
标签只能在 Config
标签中定义,不再在 Alias
标签中定义。 Group
标签中的 Alias
name
属性也已更改为 Text
。对于已经使用 1.0 版本的用户,对此表示歉意。
开始演示
首先要做的是修改 *aidaNet.xml* 文件。 Config
/FolderPath
值应指向您放置 Aida XML 文件的位置。然后启动该程序,并通过“文件/分析”菜单开始收集信息。 AidaNet 将尝试在当前文件夹中查找 *aidaNet.xml* 文件。 如果找不到,它将在 2 个文件夹级别向上打开它。
使用演示
“筛选选择”网格(在顶部)显示所有别名和组名称。“相应文件”网格(在底部)的列网格和“详细信息”网格(在右侧)在同一个 XML 脚本文件中定义(分别对应 FileGrid
标签和 DetailGrid
标签)。“筛选选择”和“相应文件”列网格可以排序。
导出结果
您可以将 3 个网格中的数据导出到文本文件。制表符用于分隔同一行中的字段。导出仅保存网格上可见的内容,因为保存安装了“Internet Explorer”的所有 PC 信息可能会产生很多页报告。
关注点
AidaNet 可以用于其他类型的 XML 文件,例如 XML 书籍文件。这是一个 XPath 用法的很好的例子。它是一个类似 FLWOR 语句(FOR-LET-WHERE-ORDER-RETURN)的程序(仍然不可用)。
此程序使用 2 种方式读取 XML 文件
XPathDocument
读取 AIDA 文件。然后使用 XPath 来检索值。- XML 架构。 Microsoft XSD 可以从架构生成 C# 代码。 请参阅 XML 数据文件、XML 序列化和 .NET 或者在 CodeProject 中搜索“XML 序列化”以获取更多信息。
改进
下一个版本将提供 XPath 编辑器。
ListView 奖励
该项目带有一个 Listview
帮助器类,该类允许使用向上和向下排序指示器图片进行列排序。 此类不是另一个 ListView
子类,您可以将其与现有代码一起使用。 示例用法
using ListViewHelper
...
public ListViewSorter MySorter ;
...
// Create the Sorter
MySorter = new ListViewSorter (MyListView) ;
// automatic user sort on header click
MyListView.ListViewItemSorter = MySorter ;
// You must specify the array containing the 2 sort pictures.
MyListView.TableArrows = imageList1 ;
...
// Sort by code. First arg is the column used to sort the list
MySorter.SortBy (MyColumnHeader , SortOrder.Ascending)
同一个类允许调整所有列的大小。 Microsoft 提供了基于标题或项目的优化列宽的常量,但不能同时基于两者。 ResizeColumns
函数将所有列调整为最大宽度。
示例用法
MySorter.ResizeColumns() ;
历史
- 2004 年 2 月:版本 1.0
- 2004 年 3 月:版本 1.5:添加了验证、文本导出并使用 XML 序列化