如何用.net“透视”计算机

 

如何用.net透视计算机

 ——引言篇

 

在MFC那个时代,我们可以用WMI来查看Window资源。WMI 最初于1998年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在Windows 2000、 Windows XP和Windows Server 2003 系列操作系统中核心的管理支持技术。基于由 Distributed Management Task Force (DMTF) 所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。它替代了通过 Win32应用程序编程接口(Application ProgrammingInterfaces,API)来访问和管理Windows资源的方式。

   在.net 开发环境中,同样提供了许多可以访问Window资源的类。大家比较熟悉的可能是System.Environment这个类,使用 Environment 类可检索信息,如命令行参数、退出代码、环境变量设置、调用堆栈的内容、上次系统引导以来的时间,以及公共语言运行库的版本。

   常用的属性有:

       Environment.MachineName,获取此本地计算机的 NetBIOS 名称,如Hi4-Kevin-Zou

       Environment.CurrentDirectory,获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

       Environment.OSVersion, 获取包含当前平台标识符和版本号的 OperatingSystem 对象。OperatingSystem 对象提供的两个重要属性:Platform 获取标识此操作 

    系统平台的 PlatformID 值。Version 获取标识此操作系统的 Version 对象

       Environment.UserDomainName 获取与当前用户关联的网络域名。

       Environment.UserName 获取启动当前线程的人的用户名。

       Environment.Version 获取一个 Version 对象,该对象描述公共语言运行库的主版本、次版本、内部版本和修订号。

    常用的方法:

      public static string GetEnvironmentVariable( string variable); variable 包含环境变量名的字符串。 功能:返回指定环境变量的值。

      public static string[] GetLogicalDrives(); 返回值 字符串数组,其中的每个元素都包含逻辑驱动器名称。例如,如果计算机的硬盘是第一个逻辑驱动器,则返       

    回的第一个元素是C:"

   这些是比较常用,也是比较简单的使用。您可能觉得功能不够强大,那么在System.Management命名空间下,正有一堆超级武器等着你去使用呢。System.Management命名空间的类、委托、枚举提供对大量管理信息和管理事件集合的访问,这些信息和事件是与根据 Windows 管理规范 (WMI) 结构对系统、设备和应用程序设置检测点有关的。应用程序和服务可以使用从 ManagementObjectSearcher 和 ManagementQuery 派生的类,查询感兴趣的管理信息(例如在磁盘上还剩多少可用空间、当前 CPU 利用率是多少、某一应用程序正连接到哪一数据库等等);或者应用程序和服务可以使用 ManagementEventWatcher 类预订各种管理事件。这些可访问的数据可以来自分布式环境中托管的和非托管的组件。

   这些类足够能完成你想要的一切对Window资源的访问。这些类非常丰富,丰富到不可能一个个尝试过来,有兴趣的同仁可以使用以下。下面就对笔者用过的一个类 ManagementObject 简单介绍一下。在MSDN上,对其功能的官方表述为:表示数据管理对象。呵呵,这个等于什么都没说。认识这个类之前,还得介绍一下它的一位好搭档。

    public ManagementObject(string) ——这是它的一个重载构造函数,也是网上搜索时见到较多的方式。先看一个实例化 ManagementObject disk = new ManagementObject( "win32_logicaldisk.deviceid=""c:""您也许要问,这个win32_logicaldisk是什么呢?如果熟悉WMI,就能猜到这是一个WMI class。不熟悉WMI 没问题(其实我一点不懂),只要传给它指定位置,就能获得你想要的值了。刚才构造函数传递的值,其实是告诉win32_logicaldisk,我要的知道的对象是C盘。现在这个disk就是关于C盘的ManagementObject对象。再做这样一个这样的操作:

       

 

 string totalByte = diskMonitor["Size"].ToString();

         ulong totalDiskSpaceMb = Convert.ToUInt64(totalByte);

 

      return totalDiskSpaceMb;

 

 

便可取到Size对应的C盘容量了。win32_logicaldisk类是有关磁盘信息的,共有40多个参数,ManagementObject类的强大其实完全是依靠win32_logicaldisk,因为ManagementObject其实只是对WMI的一点封装而已。来看下win32_logicaldisk的一些重要属性:   

      DriveType 返回类型:uint32 以数字表示逻辑磁盘的磁盘类型:

                                0 Unknown

                                1 No Root Directory

                                2 Removable Disk

                                3 Local Disk

                                4 Network Drive

                                5 Compact Disc

                                6 RAM Disk

     FileSystem 返回类型:string 便是磁盘上文件系统,就是我们熟知的NTFS,FAT32等格式。

     FreeSpace 返回类型:uint64 磁盘剩余空间。

     InstallDate 返回类型:datetime 返回磁盘对象建立的日期和时间。

     Size 返回类型:uint64:磁盘大小。

     StatusInfo 返回类型:uint16 当前磁盘的状态

                             1 Other

                             2 Unknown

                             3 Enabled

                             4 Disabled

                             5 Not Applicable

     同类型的实在太多了,所有类都可以在MSDN的Windows Management Instrumentation SDK 找到。

下面附一位牛人整理的各类型WMI class

           

          

 

           降温设备

           Win32_Fan

           Win32_HeatPipe

           Win32_Refrigeration

           Win32_TemperatureProbe

 

          输入设备

          

            Win32_Keyboard

            Win32_PointingDevice

            

           存储设备

           

            Win32_AutochkSetting

            Win32_CDROMDrive

            Win32_DiskDrive

            Win32_FloppyDrive

            Win32_LogicalDisk

            Win32_MappedLogicalDisk

            Win32_TapeDrive

 

          主板控制器及端口

           

            Win32_1394Controller

            Win32_1394ControllerDevice

            Win32_AllocatedResource

            Win32_AssociatedProcessorMemory

            Win32_BaseBoard

            Win32_BIOS

            Win32_Bus

            Win32_CacheMemory

            Win32_ControllerHasHub

            Win32_DeviceBus

            Win32_DeviceMemoryAddress

            Win32_DeviceSettings

            Win32_DMAChannel

            Win32_FloppyController

            Win32_IDEController

            Win32_IDEControllerDevice

            Win32_InfraredDevice

            Win32_IRQResource

            Win32_MemoryArray

            Win32_MemoryArrayLocation

            Win32_MemoryDevice

            Win32_MemoryDeviceArray

            Win32_MemoryDeviceLocation

            Win32_MotherboardDevice

            Win32_OnBoardDevice

            Win32_ParallelPort

            Win32_PCMCIAController

            Win32_PhysicalMemory

            Win32_PhysicalMemoryArray

            Win32_PhysicalMemoryLocation

            Win32_PNPAllocatedResource

            Win32_PNPDevice

            Win32_PNPEntity

            Win32_PortConnector

            Win32_PortResource

            Win32_Processor

            Win32_SCSIController

            Win32_SCSIControllerDevice

            Win32_SerialPort

            Win32_SerialPortConfiguration

            Win32_SerialPortSetting

            Win32_SMBIOSMemory

            Win32_SoundDevice

            Win32_SystemBIOS

            Win32_SystemDriverPNPEntity

            Win32_SystemEnclosure

            Win32_SystemMemoryResource

            Win32_SystemSlot

            Win32_USBController

            Win32_USBControllerDevice

            Win32_USBHub

 

          网络设备

            Win32_NetworkAdapter

            Win32_NetworkAdapterConfiguration

            Win32_NetworkAdapterSetting

 

           电源

            Win32_Battery

            Win32_CurrentProbe

            Win32_PortableBattery

            Win32_PowerManagementEvent

            Win32_UninterruptiblePowerSupply

            Win32_VoltageProbe

 

           打印设备

            Win32_DriverForDevice

            Win32_Printer

            Win32_PrinterConfiguration

            Win32_PrinterController

            Win32_PrinterDriver

            Win32_PrinterDriverDll

            Win32_PrinterSetting

            Win32_PrintJob

            Win32_TCPIPPrinterPort

 

           电话设备

            Win32_POTSModem

            Win32_POTSModemToSerialPort

 

           视频和监视器

            Win32_DesktopMonitor

            Win32_DisplayConfiguration

            Win32_DisplayControllerConfiguration

            Win32_VideoConfiguration

            Win32_VideoController

            Win32_VideoSettings

 

 

          软件操作系统

 

           组件

          

            Win32_ClassicCOMApplicationClasses

            Win32_ClassicCOMClass

            Win32_ClassicCOMClassSettings

            Win32_ClientApplicationSetting

            Win32_COMApplication

            Win32_COMApplicationClasses

            Win32_COMApplicationSettings

            Win32_COMClass

            Win32_ComClassAutoEmulator

            Win32_ComClassEmulator

            Win32_ComponentCategory

            Win32_COMSetting

            Win32_DCOMApplication

            Win32_DCOMApplicationAccessAllowedSetting

            Win32_DCOMApplicationLaunchAllowedSetting

            Win32_DCOMApplicationSetting

            Win32_ImplementedCategory

 

           桌面

            Win32_Desktop

            Win32_Environment

            Win32_TimeZone

            Win32_UserDesktop

 

           驱动

            Win32_DriverVXD

            Win32_SystemDriver

 

          文件系统

            Win32_CIMLogicalDeviceCIMDataFile

            Win32_Directory

            Win32_DirectorySpecification

            Win32_DiskDriveToDiskPartition

            Win32_DiskPartition

            Win32_DiskQuota

            Win32_LogicalDiskRootDirectory

            Win32_LogicalDiskToPartition

            Win32_OperatingSystemAutochkSetting

            Win32_QuotaSetting

            Win32_ShortcutFile

            Win32_SubDirectory

            Win32_SystemPartitions

            Win32_VolumeQuotaSetting

 

           工作对象

            Win32_CollectionStatistics

            Win32_LUID

            Win32_LUIDandAttributes

            Win32_NamedJobObject

            Win32_NamedJobObjectActgInfo

            Win32_NamedJobObjectLimit

            Win32_NamedJobObjectLimitSetting

            Win32_NamedJobObjectProcess

            Win32_NamedJobObjectSecLimit

            Win32_NamedJobObjectSecLimitSetting

            Win32_NamedJobObjectStatistics

            Win32_SIDandAttributes

            Win32_TokenGroups

            Win32_TokenPrivileges

 

           内存和页面

            Win32_LogicalMemoryConfiguration

            Win32_PageFile

            Win32_PageFileElementSetting

            Win32_PageFileSetting

            Win32_PageFileUsage

            Win32_SystemLogicalMemoryConfiguration

 

           媒体和音频

            Win32_CodecFile

 

           网络

             Win32_ActiveRoute

             Win32_IP4PersistedRouteTable

             Win32_IP4RouteTable

             Win32_IP4RouteTableEvent

             Win32_NetworkClient

             Win32_NetworkConnection

             Win32_NetworkProtocol

             Win32_NTDomain

             Win32_PingStatus

             Win32_ProtocolBinding

 

         操作系统事件

            Win32_ComputerShutdownEvent

            Win32_ComputerSystemEvent

            NWin32_DeviceChangeEvent

            Win32_ModuleLoadTrace

            Win32_ModuleTrace

            Win32_ProcessStartTrace

            Win32_ProcessStopTrace

            Win32_ProcessTrace

            Win32_SystemConfigurationChangeEvent

            Win32_SystemTrace

            Win32_ThreadStartTrace

            Win32_ThreadStopTrace

            Win32_ThreadTrace

            Win32_VolumeChangeEvent

 

         操作系统设置

          

            Win32_BootConfiguration

            Win32_ComputerSystem

            Win32_ComputerSystemProcessor

            Win32_ComputerSystemProduct

            Win32_DependentService

            Win32_LoadOrderGroup

            Win32_LoadOrderGroupServiceDependencies

            Win32_LoadOrderGroupServiceMembers

            Win32_OperatingSystem

            Win32_OperatingSystemQFE

            Win32_OSRecoveryConfiguration

            Win32_QuickFixEngineering

            Win32_StartupCommand

            Win32_SystemBootConfiguration

            Win32_SystemDesktop

            Win32_SystemDevices

            Win32_SystemLoadOrderGroups

            Win32_SystemNetworkConnections

            Win32_SystemOperatingSystem

            Win32_SystemProcesses

            Win32_SystemProgramGroups

            Win32_SystemResources

            Win32_SystemServices

            Win32_SystemSetting

            Win32_SystemSystemDriver

            Win32_SystemTimeZone

            Win32_SystemUsers

 

        进程

            Win32_Process

            Win32_ProcessStartup

            Win32_Thread

 

        注册表

        

            Win32_Registry

 

        计划任务

            Win32_CurrentTime

            Win32_ScheduledJob

 

        安全

            NWin32_AccountSID

            Win32_ACE

            Win32_LogicalFileAccess

            Win32_LogicalFileAuditing

            Win32_LogicalFileGroup

            Win32_LogicalFileOwner

            Win32_LogicalFileSecuritySetting

            Win32_LogicalShareAccess

            Win32_LogicalShareAuditing

            Win32_LogicalShareSecuritySetting

            NWin32_PrivilegesStatus

            NWin32_SecurityDescriptor

            Win32_SecuritySetting

            Win32_SecuritySettingAccess

            Win32_SecuritySettingAuditing

            Win32_SecuritySettingGroup

            Win32_SecuritySettingOfLogicalFile

            NodWin32_SecuritySettingOfLogicalShare

            Win32_SecuritySettingOfObject

            Win32_SecuritySettingOwner

            Win32_SID

            Win32_Trustee

 

         服务

            Win32_BaseService

            Win32_Service

 

          共享

            Win32_ServerConnection

            Win32_ServerSession

            Win32_ConnectionShare

            Win32_PrinterShare

            Win32_SessionConnection

            Win32_SessionProcess

            Win32_ShareToDirectory

            Win32_Share

 

          开始菜单

            NoWin32_LogicalProgramGroup

            Win32_LogicalProgramGroupDirectory

            Win32_LogicalProgramGroupItem

            Win32_LogicalProgramGroupItemDataFile

            Win32_ProgramGroup

            Win32_ProgramGroupContents

            Win32_ProgramGroupOrItem

 

         用户

            Win32_Account

            Win32_Group

            Win32_GroupInDomain

            Win32_GroupUser

            Win32_LogonSession

            Win32_LogonSessionMappedDisk

            Win32_NetworkLoginProfile

            Win32_SystemAccount

            Win32_UserAccount

            Win32_UserInDomain

 

        Windows事件日志

           

            Win32_NTEventlogFile

            Win32_NTLogEvent

            Win32_NTLogEventComputer

            Win32_NTLogEventLog

            Win32_NTLogEventUser

 

          Windows产品激活

            Win32_ComputerSystemWindowsProductActivationSetting

            Win32_Proxy

            Win32_WindowsProductActivation

 

         应用程序安装

            Win32_ActionCheck

            Win32_ApplicationCommandLine

            Win32_ApplicationService

            Win32_Binary

            Win32_BindImageAction

            Win32_CheckCheck

            Win32_ClassInfoAction

            Win32_CommandLineAccess

            Win32_Condition

            Win32_CreateFolderAction

            Win32_DuplicateFileAction

            Win32_EnvironmentSpecification

            Win32_ExtensionInfoAction

            Win32_FileSpecification

            Win32_FontInfoAction

            Win32_IniFileSpecification

            Win32_InstalledSoftwareElement

            Win32_LaunchCondition

            Win32_ManagedSystemElementResource

            Win32_MIMEInfoAction

            Win32_MoveFileAction

            Win32_MSIResource

            Win32_ODBCAttribute

            Win32_ODBCDataSourceAttribute

            Win32_ODBCDataSourceSpecification

            Win32_ODBCDriverAttribute

            Win32_ODBCDriverSoftwareElement

            Win32_ODBCDriverSpecification

            Win32_ODBCSourceAttribute

            Win32_ODBCTranslatorSpecification

            Win32_Patch

            Win32_PatchFile

            Win32_PatchPackage

            Win32_Product

            Win32_ProductCheck

            Win32_ProductResource

            Win32_ProductSoftwareFeatures

            Win32_ProgIDSpecification

            Win32_Property

            Win32_PublishComponentAction

            Win32_RegistryAction

            Win32_RemoveFileAction

            Win32_RemoveIniAction

            Win32_ReserveCost

            Win32_SelfRegModuleAction

            Win32_ServiceControl

            Win32_ServiceSpecification

            Win32_ServiceSpecificationService

            Win32_SettingCheck

            Win32_ShortcutAction

            Win32_ShortcutSAP

            Win32_SoftwareElement

            Win32_SoftwareElementAction

            Win32_SoftwareElementCheck

            Win32_SoftwareElementCondition

            Win32_SoftwareElementResource

            Win32_SoftwareFeature

            Win32_SoftwareFeatureAction

            Win32_SoftwareFeatureCheck

            Win32_SoftwareFeatureParent

            Win32_SoftwareFeatureSoftwareElements

            Win32_TypeLibraryAction

 

 

           WMI服务管理

        

             WMI设置

            Win32_MethodParameterClass

 

           WMI管理

            Win32_WMISetting

            Win32_WMIElementSetting

 

 

          性能计数器

 

            Win32_PerfFormattedData

            Win32_PerfFormattedData_ASP_ActiveServerPages

            Win32_PerfFormattedData_ContentFilter_IndexingServiceFilter

            Win32_PerfFormattedData_ContentIndex_IndexingService

            Win32_PerfFormattedData_InetInfo_InternetInformationServicesGlobal

            Win32_PerfFormattedData_ISAPISearch_HttpIndexingService

            Win32_PerfFormattedData_MSDTC_DistributedTransactionCoordinator

            Win32_PerfFormattedData_NTFSDRV_SMTPNTFSStoreDriver

            Win32_PerfFormattedData_PerfDisk_LogicalDisk

            Win32_PerfFormattedData_PerfDisk_PhysicalDisk

            Win32_PerfFormattedData_PerfNet_Browser

            Win32_PerfFormattedData_PerfNet_Redirector

            Win32_PerfFormattedData_PerfNet_Server

            Win32_PerfFormattedData_PerfNet_ServerWorkQueues

            Win32_PerfFormattedData_PerfOS_Cache

            Win32_PerfFormattedData_PerfOS_Memory

            Win32_PerfFormattedData_PerfOS_Objects

            Win32_PerfFormattedData_PerfOS_PagingFile

            Win32_PerfFormattedData_PerfOS_Processor

            Win32_PerfFormattedData_PerfOS_System

            Win32_PerfFormattedData_PerfProc_FullImage_Costly

            Win32_PerfFormattedData_PerfProc_Image_Costly

            Win32_PerfFormattedData_PerfProc_JobObject

            Win32_PerfFormattedData_PerfProc_JobObjectDetails

            Win32_PerfFormattedData_PerfProc_Process

            Win32_PerfFormattedData_PerfProc_ProcessAddressSpace_Costly

            Win32_PerfFormattedData_PerfProc_Thread

            Win32_PerfFormattedData_PerfProc_ThreadDetails_Costly

            Win32_PerfFormattedData_PSched_PSchedFlow

            Win32_PerfFormattedData_PSched_PSchedPipe

            Win32_PerfFormattedData_RemoteAccess_RASPort

            Win32_PerfFormattedData_RemoteAccess_RASTotal

            Win32_PerfFormattedData_RSVP_ACSRSVPInterfaces

            Win32_PerfFormattedData_RSVP_ACSRSVPService

            Win32_PerfFormattedData_SMTPSVC_SMTPServer

            Win32_PerfFormattedData_Spooler_PrintQueue

            Win32_PerfFormattedData_TapiSrv_Telephony

            Win32_PerfFormattedData_Tcpip_ICMP

            Win32_PerfFormattedData_Tcpip_IP

            Win32_PerfFormattedData_Tcpip_NBTConnection

            Win32_PerfFormattedData_Tcpip_NetworkInterface

            Win32_PerfFormattedData_Tcpip_TCP

            Win32_PerfFormattedData_Tcpip_UDP

            Win32_PerfFormattedData_TermService_TerminalServices

            Win32_PerfFormattedData_TermService_TerminalServicesSession

            Win32_PerfFormattedData_W3SVC_WebService

 

          原始性能计数

            Win32_PerfRawData

            Win32_PerfRawData_ASP_ActiveServerPages

            Win32_PerfRawData_ContentFilter_IndexingServiceFilter

            Win32_PerfRawData_ContentIndex_IndexingService

            Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal

            Win32_PerfRawData_ISAPISearch_HttpIndexingService

            Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator

            Win32_PerfRawData_NTFSDRV_SMTPNTFSStoreDriver

            Win32_PerfRawData_PerfDisk_LogicalDisk

            Win32_PerfRawData_PerfDisk_PhysicalDisk

            Win32_PerfRawData_PerfNet_Browser

            Win32_PerfRawData_PerfNet_Redirector

            Win32_PerfRawData_PerfNet_Server

            Win32_PerfRawData_PerfNet_ServerWorkQueues

            Win32_PerfRawData_PerfOS_Cache

            Win32_PerfRawData_PerfOS_Memory

            Win32_PerfRawData_PerfOS_Objects

            Win32_PerfRawData_PerfOS_PagingFile

            Win32_PerfRawData_PerfOS_Processor

            Win32_PerfRawData_PerfOS_System

            Win32_PerfRawData_PerfProc_FullImage_Costly

            Win32_PerfRawData_PerfProc_Image_Costly

            Win32_PerfRawData_PerfProc_JobObject

            Win32_PerfRawData_PerfProc_JobObjectDetails

            Win32_PerfRawData_PerfProc_Process

            Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly

            Win32_PerfRawData_PerfProc_Thread

            Win32_PerfRawData_PerfProc_ThreadDetails_Costly

            Win32_PerfRawData_PSched_PSchedFlow

            NWin32_PerfRawData_PSched_PSchedPipe

            Win32_PerfRawData_RemoteAccess_RASPort

            Win32_PerfRawData_RemoteAccess_RASTotal

            Win32_PerfRawData_RSVP_ACSRSVPInterfaces

            Win32_PerfRawData_RSVP_ACSRSVPService

            Win32_PerfRawData_SMTPSVC_SMTPServer

            Win32_PerfRawData_Spooler_PrintQueue

            Win32_PerfRawData_TapiSrv_Telephony

            Win32_PerfRawData_Tcpip_ICMP

            Win32_PerfRawData_Tcpip_IP

            Win32_PerfRawData_Tcpip_NBTConnection

            Win32_PerfRawData_Tcpip_NetworkInterface

            Win32_PerfRawData_Tcpip_TCP

            Win32_PerfRawData_Tcpip_UDP

            Win32_PerfRawData_TermService_TerminalServices

            Win32_PerfRawData_TermService_TerminalServicesSession

            Win32_PerfRawData_W3SVC_WebService

 

 

转载于:https://www.cnblogs.com/OliveSky/archive/2008/08/16/1269283.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值