现在的位置: 首页 > 综合 > 正文

WMI设备管理04

2018年02月07日 ⁄ 综合 ⁄ 共 2512字 ⁄ 字号 评论关闭

【文章标题】: WMI设备管理04
【文章作者】: 有酒醉
【作者邮箱】: wuqr32@sina.com
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
六、WMI的关联类

在WMI设备管理中,有些对象是存在相互关联的.比如说,逻辑磁盘和分区它们是有关联的.逻辑磁盘是用Win32_LogicalDisk类表示,
分区是用Win32_DiskPartition类来表示,而它们之间的关联则用Win32_LogicalDiskToPartition来表示.

我们简单查阅一下Win32_LogicalDiskToPartition的结构: 

class Win32_LogicalDiskToPartition : CIM_LogicalDiskBasedOnPartition
{
  Win32_DiskPartition 
ref Antecedent;
  Win32_LogicalDisk 
ref Dependent;
  uint64 EndingAddress;
  uint64 StartingAddress;
}
;

示例 -- 查阅逻辑磁盘和分区的关系

// LogicalDiskAndPartition.cs
// 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查询.

突然想起查看一下自己所有的共享文件,写个测试:

示例 -- 查看所有共享文件

// ShareLoopup.cs
// 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

 

【上篇】
【下篇】

抱歉!评论已关闭.