【文章标题】: WMI设备管理04
【文章作者】: 有酒醉
【作者邮箱】: wuqr32@sina.com
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
六、WMI的关联类
在WMI设备管理中,有些对象是存在相互关联的.比如说,逻辑磁盘和分区它们是有关联的.逻辑磁盘是用Win32_LogicalDisk类表示,
分区是用Win32_DiskPartition类来表示,而它们之间的关联则用Win32_LogicalDiskToPartition来表示.
我们简单查阅一下Win32_LogicalDiskToPartition的结构:
...{
Win32_DiskPartition ref Antecedent;
Win32_LogicalDisk ref Dependent;
uint64 EndingAddress;
uint64 StartingAddress;
};
示例 -- 查阅逻辑磁盘和分区的关系
// Author by Yzl
using System;
using System.Management;
public class LogicalDiskAndPartition
...{
public static void Main(string[] args)
...{
ManagementClass lpCls = new ManagementClass("Win32_LogicalDiskToPartition");
foreach(ManagementObject lpObj in lpCls.GetInstances())
...{
Console.WriteLine(lpObj["Dependent"]);
Console.WriteLine(lpObj["Antecedent"]);
}
}
}
本机运行如下;
E:/>LogicalDiskAndPartition
//PC2/root/cimv2:Win32_LogicalDisk.DeviceID="C:"
//PC2/root/cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #0"
//PC2/root/cimv2:Win32_LogicalDisk.DeviceID="D:"
//PC2/root/cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #1"
//PC2/root/cimv2:Win32_LogicalDisk.DeviceID="E:"
//PC2/root/cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #1"
//PC2/root/cimv2:Win32_LogicalDisk.DeviceID="F:"
//PC2/root/cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #1"
结果得:我的机器是将C驱动器存储在磁盘0分区0上,D驱动器存储在磁盘0分区1上.
同样,分区和物理硬盘的情况可以通过Win32_DiskDriveToDiskPartition查询.
突然想起查看一下自己所有的共享文件,写个测试:
示例 -- 查看所有共享文件
// Author by Yzl
using System;
using System.Management;
public class ShareLookup
...{
public static void Main(string[] args)
...{
ManagementClass lpCls = new ManagementClass("Win32_Share");
foreach(ManagementObject lpObj in lpCls.GetInstances())
...{
Console.WriteLine(lpObj);
}
}
}
运行如下,发现了很不爽的事:
E:/>ShareLookup
//PC2/root/cimv2:Win32_Share.Name="E$"
//PC2/root/cimv2:Win32_Share.Name="IPC$"
//PC2/root/cimv2:Win32_Share.Name="D$"
//PC2/root/cimv2:Win32_Share.Name="F$"
//PC2/root/cimv2:Win32_Share.Name="ADMIN$"
//PC2/root/cimv2:Win32_Share.Name="wwwroot$"
//PC2/root/cimv2:Win32_Share.Name="C$"
竟然所有的盘符都被共享了,实在不爽!!!
<续>
--------------------------------------------------------------------------------
【版权声明】: 本文原创于泉州软件基地, 转载请注明作者并保持文章的完整, 谢谢!
2007年03月14日 17:08:20