使用WMI获取远程机器操作系统的详细信息

代码主题部分的OperatingSystem类,是使用工具(Management (WMI) Extensions for Visual Studio .NET 2003 Server Explorer http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=62d91a63-1253-4ea6-8599-68fb3ef77de1 )生成的。

using System;
using System.Management;
using System.ComponentModel;
using System.Collections;
using System.Globalization;
using System.ComponentModel.Design.Serialization;
using System.Reflection;

public class Program
{
static void Main(string[] args)
{
try
{
ConnectionOptions co = new ConnectionOptions();
co.Username = "administrator";
co.Password = "lacl";
System.Management.ManagementScope ms = new System.Management.ManagementScope(" \\\"+"192.168.103.2"+"\\root\\cimv2 ", co);

System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem");

ManagementObjectSearcher query1 = new ManagementObjectSearcher(ms,oq);
ManagementObjectCollection queryCollection1 = query1.Get();
foreach(ManagementObject mo in queryCollection1)
{
OperatingSystem os=new OperatingSystem(mo);
Console.WriteLine(os.Name);
}
}
catch(Exception ee)
{
Console.WriteLine("发生了一个异常。");
Console.WriteLine(ee.Message);
}
}
}

// ShouldSerialize

   1<propertyname> 函数是 VS 属性浏览器用来检查具体某个属性是否必须序列化的函数。为所有 ValueType 属性(类型为 Int32、BOOL 等的属性,不能将它们设置为空)添加这些函数。这些函数使用 Is<propertyname>Null 函数。这些函数还在属性的 TypeConverter 实现中用来检查属性的 NULL 值,以便在 Visual Studio 中进行拖放操作时可以在属性浏览器中显示空值。   
   2// 函数 Is<propertyname>Null() 用于检查属性是否为 NULL。   
   3// 为可为空值的读/写属性添加 Reset<propertyname> 函数。这些函数由 VS 设计器用来在属性浏览器中将属性设置为 NULL。   
   4// 添加到 WMI 属性的类的每个属性都有定义其在 Visual Studio 设计器中的行为以及定义要使用的 TypeConverter 的特性集。   
   5// DateTime 转换函数 ToDateTime 和 ToDmtfDateTime 添加到类以将 DMTF 日期时间转换为 System.DateTime (或相反)。   
   6// 为 WMI 类生成的早期绑定类。Win32_OperatingSystem   
   7public class OperatingSystem : System.ComponentModel.Component   
   8{   
   9  
  10// 用于保存该类所驻留的 WMI 命名空间的私有属性。   
  11private static string CreatedWmiNamespace = "ROOT\\\CIMV2";   
  12  
  13// 私有属性,保存创建此类的 WMI 类的名称。   
  14private static string CreatedClassName = "Win32_OperatingSystem";   
  15  
  16// 用于保存由各种方法使用的 ManagementScope 的私有成员变量。   
  17private static System.Management.ManagementScope statMgmtScope = null;   
  18  
  19private ManagementSystemProperties PrivateSystemProperties;   
  20  
  21// 基础 LateBound WMI 对象。   
  22private System.Management.ManagementObject PrivateLateBoundObject;   
  23  
  24// 存储类的“自动提交”行为的成员变量。   
  25private bool AutoCommitProp = true;   
  26  
  27// 保存表示实例的嵌入属性的私有变量。   
  28private System.Management.ManagementBaseObject embeddedObj;   
  29  
  30// 所使用的当前 WMI 对象   
  31private System.Management.ManagementBaseObject curObj;   
  32  
  33// 用于指示实例是否为嵌入对象的标志。   
  34private bool isEmbedded = false;   
  35  
  36// 以下是用 WMI 对象初始化类实例的构造函数的不同重载。   
  37public OperatingSystem() :   
  38this(((System.Management.ManagementScope)(null)), ((System.Management.ManagementPath)(null)), ((System.Management.ObjectGetOptions)(null)))   
  39{   
  40}   
  41  
  42public OperatingSystem(string keyName) :   
  43this(((System.Management.ManagementScope)(null)), ((System.Management.ManagementPath)(new System.Management.ManagementPath(OperatingSystem.ConstructPath(keyName)))), ((System.Management.ObjectGetOptions)(null)))   
  44{   
  45}   
  46  
  47public OperatingSystem(System.Management.ManagementScope mgmtScope, string keyName) :   
  48this(((System.Management.ManagementScope)(mgmtScope)), ((System.Management.ManagementPath)(new System.Management.ManagementPath(OperatingSystem.ConstructPath(keyName)))), ((System.Management.ObjectGetOptions)(null)))   
  49{   
  50}   
  51  
  52public OperatingSystem(System.Management.ManagementPath path, System.Management.ObjectGetOptions getOptions) :   
  53this(((System.Management.ManagementScope)(null)), ((System.Management.ManagementPath)(path)), ((System.Management.ObjectGetOptions)(getOptions)))   
  54{   
  55}   
  56  
  57public OperatingSystem(System.Management.ManagementScope mgmtScope, System.Management.ManagementPath path) :   
  58this(((System.Management.ManagementScope)(mgmtScope)), ((System.Management.ManagementPath)(path)), ((System.Management.ObjectGetOptions)(null)))   
  59{   
  60}   
  61  
  62public OperatingSystem(System.Management.ManagementPath path) :   
  63this(((System.Management.ManagementScope)(null)), ((System.Management.ManagementPath)(path)), ((System.Management.ObjectGetOptions)(null)))   
  64{   
  65}   
  66  
  67public OperatingSystem(System.Management.ManagementScope mgmtScope, System.Management.ManagementPath path, System.Management.ObjectGetOptions getOptions)   
  68{   
  69if ((path != null))   
  70{   
  71if ((CheckIfProperClass(mgmtScope, path, getOptions) != true))   
  72{   
  73throw new System.ArgumentException("类名不匹配。");   
  74}   
  75}   
  76PrivateLateBoundObject = new System.Management.ManagementObject(mgmtScope, path, getOptions);   
  77PrivateSystemProperties = new ManagementSystemProperties(PrivateLateBoundObject);   
  78curObj = PrivateLateBoundObject;   
  79}   
  80  
  81public OperatingSystem(System.Management.ManagementObject theObject)   
  82{   
  83if ((CheckIfProperClass(theObject) == true))   
  84{   
  85PrivateLateBoundObject = theObject;   
  86PrivateSystemProperties = new ManagementSystemProperties(PrivateLateBoundObject);   
  87curObj = PrivateLateBoundObject;   
  88}   
  89else   
  90{   
  91throw new System.ArgumentException("类名不匹配。");   
  92}   
  93}   
  94  
  95public OperatingSystem(System.Management.ManagementBaseObject theObject)   
  96{   
  97if ((CheckIfProperClass(theObject) == true))   
  98{   
  99embeddedObj = theObject;   
 100PrivateSystemProperties = new ManagementSystemProperties(theObject);   
 101curObj = embeddedObj;   
 102isEmbedded = true;   
 103}   
 104else   
 105{   
 106throw new System.ArgumentException("类名不匹配。");   
 107}   
 108}   
 109  
 110// 属性返回 WMI 类的命名空间。   
 111[Browsable(true)]   
 112[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 113public string OriginatingNamespace   
 114{   
 115get   
 116{   
 117return "ROOT\\\CIMV2";   
 118}   
 119}   
 120  
 121[Browsable(true)]   
 122[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 123public string ManagementClassName   
 124{   
 125get   
 126{   
 127string strRet = CreatedClassName;   
 128if ((curObj != null))   
 129{   
 130if ((curObj.ClassPath != null))   
 131{   
 132strRet = ((string)(curObj["__CLASS"]));   
 133if (((strRet == null)   
 134|| (strRet == System.String.Empty)))   
 135{   
 136strRet = CreatedClassName;   
 137}   
 138}   
 139}   
 140return strRet;   
 141}   
 142}   
 143  
 144// 指向嵌入对象以获取 WMI 对象的系统属性的属性。   
 145[Browsable(true)]   
 146[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 147public ManagementSystemProperties SystemProperties   
 148{   
 149get   
 150{   
 151return PrivateSystemProperties;   
 152}   
 153}   
 154  
 155// 返回基础 LateBound 对象的属性。   
 156[Browsable(false)]   
 157[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 158public System.Management.ManagementBaseObject LateBoundObject   
 159{   
 160get   
 161{   
 162return curObj;   
 163}   
 164}   
 165  
 166// 对象的 ManagementScope。   
 167[Browsable(true)]   
 168[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 169public System.Management.ManagementScope Scope   
 170{   
 171get   
 172{   
 173if ((isEmbedded == false))   
 174{   
 175return PrivateLateBoundObject.Scope;   
 176}   
 177else   
 178{   
 179return null;   
 180}   
 181}   
 182set   
 183{   
 184if ((isEmbedded == false))   
 185{   
 186PrivateLateBoundObject.Scope = value;   
 187}   
 188}   
 189}   
 190  
 191/// <summary>   
 192/// 显示 WMI 对象的提交行为的属性。如果为 true,则 WMI 对象在每次属性修改后都自动保存(即在修改属性后调用 Put())。   
 193/// </summary>   
 194[Browsable(false)]   
 195[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 196public bool AutoCommit   
 197{   
 198get   
 199{   
 200return AutoCommitProp;   
 201}   
 202set   
 203{   
 204AutoCommitProp = value;   
 205}   
 206}   
 207  
 208// 基础 WMI 对象的 ManagementPath。   
 209[Browsable(true)]   
 210public System.Management.ManagementPath Path   
 211{   
 212get   
 213{   
 214if ((isEmbedded == false))   
 215{   
 216return PrivateLateBoundObject.Path;   
 217}   
 218else   
 219{   
 220return null;   
 221}   
 222}   
 223set   
 224{   
 225if ((isEmbedded == false))   
 226{   
 227if ((CheckIfProperClass(null, value, null) != true))   
 228{   
 229throw new System.ArgumentException("类名不匹配。");   
 230}   
 231PrivateLateBoundObject.Path = value;   
 232}   
 233}   
 234}   
 235  
 236// 由各种方法使用的公共静态范围属性。   
 237[Browsable(true)]   
 238[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 239public static System.Management.ManagementScope StaticScope   
 240{   
 241get   
 242{   
 243return statMgmtScope;   
 244}   
 245set   
 246{   
 247statMgmtScope = value;   
 248}   
 249}   
 250  
 251[Browsable(true)]   
 252[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 253[Description("BootDevice 属性表示 Win32 操作系统启动的那个磁盘驱动器的名称。\n例如: \\\\\\\Device\\\Harddisk0 。")]   
 254public string BootDevice   
 255{   
 256get   
 257{   
 258return ((string)(curObj["BootDevice"]));   
 259}   
 260}   
 261  
 262[Browsable(true)]   
 263[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 264[Description("BuildNumber 属性表示操作系统的内部版本号码。可用于比产品发行版本号更精确的版本信息。\n例如: 1381")]   
 265public string BuildNumber   
 266{   
 267get   
 268{   
 269return ((string)(curObj["BuildNumber"]));   
 270}   
 271}   
 272  
 273[Browsable(true)]   
 274[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 275[Description("BuildType 属性表示用于操作系统的内部版本种类。如销售版本和检查版本。")]   
 276public string BuildType   
 277{   
 278get   
 279{   
 280return ((string)(curObj["BuildType"]));   
 281}   
 282}   
 283  
 284[Browsable(true)]   
 285[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 286[Description("Caption 属性为对象的简短文字描述(一行字符串)。")]   
 287public string Caption   
 288{   
 289get   
 290{   
 291return ((string)(curObj["Caption"]));   
 292}   
 293}   
 294  
 295[Browsable(true)]   
 296[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 297[Description("CodeSet 属性表示由操作系统使用的编码页值。编码页包含由操作系统为不同语言翻译字符串的字符表。American National Standards Ins" +   
 298"titute (ANSI)列出代表定义过的编码页的值。如果操作系统不使用 ANSI 编码页,这个成员就会被设为 0。CodeSet 字符串可用六个字符定义编码页" +   
 299"的值。\n例如: 1255。")]   
 300public string CodeSet   
 301{   
 302get   
 303{   
 304return ((string)(curObj["CodeSet"]));   
 305}   
 306}   
 307  
 308[Browsable(true)]   
 309[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 310[Description("CountryCode 属性表示由操作系统使用的国家(地区)编码。值是根据国际电话拨号的前缀(还作为 IBM 国家(地区)编码)。CountryCode 字符串可" +   
 311"使用六个字符定义国家(地区)编码的值。\n例如: 1 代表美国)")]   
 312public string CountryCode   
 313{   
 314get   
 315{   
 316return ((string)(curObj["CountryCode"]));   
 317}   
 318}   
 319  
 320[Browsable(true)]   
 321[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 322[Description("CreationClassName 表示用来创建范例的类别或子类别的名称。当与这个类别的其它主要属性一起使用时,这个属性允许为这个类别及其子类别的所有范例作唯一识" +   
 323"别。")]   
 324public string CreationClassName   
 325{   
 326get   
 327{   
 328return ((string)(curObj["CreationClassName"]));   
 329}   
 330}   
 331  
 332[Browsable(true)]   
 333[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 334[Description("CSCreationClassName 包含作用域计算机系统的创建类别名称。")]   
 335public string CSCreationClassName   
 336{   
 337get   
 338{   
 339return ((string)(curObj["CSCreationClassName"]));   
 340}   
 341}   
 342  
 343[Browsable(true)]   
 344[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 345[Description("CSDVersion 属性包含一个 null 结尾的字符串,可表示安装在计算机系统上的最新服务包。如果没有安装服务包,该值为 NULL。对于运行 Windows " +   
 346"95 的计算机系统,这个属性包含提供仲裁有关其它操作系统的信息的一个 null 结尾的字符串。\n例如: Service Pack 3。")]   
 347public string CSDVersion   
 348{   
 349get   
 350{   
 351return ((string)(curObj["CSDVersion"]));   
 352}   
 353}   
 354  
 355[Browsable(true)]   
 356[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 357[Description("CSName 包含作用域计算机系统的名称。")]   
 358public string CSName   
 359{   
 360get   
 361{   
 362return ((string)(curObj["CSName"]));   
 363}   
 364}   
 365  
 366[Browsable(false)]   
 367[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 368public bool IsCurrentTimeZoneNull   
 369{   
 370get   
 371{   
 372if ((curObj["CurrentTimeZone"] == null))   
 373{   
 374return true;   
 375}   
 376else   
 377{   
 378return false;   
 379}   
 380}   
 381}   
 382  
 383[Browsable(true)]   
 384[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 385[Description("CurrentTimeZone 表示操作系统从格林威治时间调整的分钟数。数字不是正数、负数就是零。")]   
 386[TypeConverter(typeof(WMIValueTypeConverter))]   
 387public short CurrentTimeZone   
 388{   
 389get   
 390{   
 391if ((curObj["CurrentTimeZone"] == null))   
 392{   
 393return System.Convert.ToInt16(0);   
 394}   
 395return ((short)(curObj["CurrentTimeZone"]));   
 396}   
 397set   
 398{   
 399curObj["CurrentTimeZone"] = value;   
 400if (((isEmbedded == false)   
 401&amp;&amp; (AutoCommitProp == true)))   
 402{   
 403PrivateLateBoundObject.Put();   
 404}   
 405}   
 406}   
 407  
 408[Browsable(false)]   
 409[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 410public bool IsDebugNull   
 411{   
 412get   
 413{   
 414if ((curObj["Debug"] == null))   
 415{   
 416return true;   
 417}   
 418else   
 419{   
 420return false;   
 421}   
 422}   
 423}   
 424  
 425[Browsable(true)]   
 426[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 427[Description("Debug 属性表示是否检查过(调试)操作系统内部版本。查过的内部版本提供了错误检查、参数验证和系统调试编码。其它在检查过的二进制产生的内核调试错误消息和调试程序" +   
 428"终断。这可以帮助立即确定错误的原因和位置。操作由于执行的其它编码在检查过的内部版本而受影响。\n值: TRUE 或 FALSE, TRUE 值代表安装了 User" +   
 429".exe 的调试版本。")]   
 430[TypeConverter(typeof(WMIValueTypeConverter))]   
 431public bool Debug   
 432{   
 433get   
 434{   
 435if ((curObj["Debug"] == null))   
 436{   
 437return System.Convert.ToBoolean(0);   
 438}   
 439return ((bool)(curObj["Debug"]));   
 440}   
 441}   
 442  
 443[Browsable(true)]   
 444[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 445[Description("Description 属性提供 Windows 操作系统的描述。某些用户的界面(那些允许编辑这个描述的)将其长度限制到 48 个字符。")]   
 446public string Description   
 447{   
 448get   
 449{   
 450return ((string)(curObj["Description"]));   
 451}   
 452set   
 453{   
 454curObj["Description"] = value;   
 455if (((isEmbedded == false)   
 456&amp;&amp; (AutoCommitProp == true)))   
 457{   
 458PrivateLateBoundObject.Put();   
 459}   
 460}   
 461}   
 462  
 463[Browsable(false)]   
 464[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 465public bool IsDistributedNull   
 466{   
 467get   
 468{   
 469if ((curObj["Distributed"] == null))   
 470{   
 471return true;   
 472}   
 473else   
 474{   
 475return false;   
 476}   
 477}   
 478}   
 479  
 480[Browsable(true)]   
 481[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 482[Description("波尔值表示操作系统是否在几个计算机系统节点上发行。如果是这样的话,这些节点应该组成一个群集。")]   
 483[TypeConverter(typeof(WMIValueTypeConverter))]   
 484public bool Distributed   
 485{   
 486get   
 487{   
 488if ((curObj["Distributed"] == null))   
 489{   
 490return System.Convert.ToBoolean(0);   
 491}   
 492return ((bool)(curObj["Distributed"]));   
 493}   
 494}   
 495  
 496[Browsable(false)]   
 497[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 498public bool IsEncryptionLevelNull   
 499{   
 500get   
 501{   
 502if ((curObj["EncryptionLevel"] == null))   
 503{   
 504return true;   
 505}   
 506else   
 507{   
 508return false;   
 509}   
 510}   
 511}   
 512  
 513[Browsable(true)]   
 514[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 515[Description("EncryptionLevel 属性用于表示为安全交易所使用的加密级别,40 位、128 位或 n 位。")]   
 516[TypeConverter(typeof(WMIValueTypeConverter))]   
 517public EncryptionLevelValues EncryptionLevel   
 518{   
 519get   
 520{   
 521if ((curObj["EncryptionLevel"] == null))   
 522{   
 523return ((EncryptionLevelValues)(System.Convert.ToInt32(0)));   
 524}   
 525return ((EncryptionLevelValues)(Convert.ToInt32(curObj["EncryptionLevel"])));   
 526}   
 527}   
 528  
 529[Browsable(false)]   
 530[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 531public bool IsForegroundApplicationBoostNull   
 532{   
 533get   
 534{   
 535if ((curObj["ForegroundApplicationBoost"] == null))   
 536{   
 537return true;   
 538}   
 539else   
 540{   
 541return false;   
 542}   
 543}   
 544}   
 545  
 546[Browsable(true)]   
 547[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 548[Description(@"ForegroundApplicationBoost 属性表示给前景应用程序增加的优先性。在运行 Windows NT 4.0 和 Windows 2000 的计算机系统上,应用程序扩大是由给应用程序更多的时间(quantum lengths)而实现的。ForegroundApplicationBoost 值为 0 时表示系统扩大了 6 个量子长度; 如果为 1,那么就是 12; 并且如果是 2 那么就是 18。在 Windows NT 3.51 和更早的版本上,应用程序扩大是由增加日程安排的优先权来实现的。对于这些系统来说,日程安排的优先权是由这个属性得知增加的。默认值为 2。")]   
 549[TypeConverter(typeof(WMIValueTypeConverter))]   
 550public ForegroundApplicationBoostValues ForegroundApplicationBoost   
 551{   
 552get   
 553{   
 554if ((curObj["ForegroundApplicationBoost"] == null))   
 555{   
 556return ((ForegroundApplicationBoostValues)(System.Convert.ToInt32(0)));   
 557}   
 558return ((ForegroundApplicationBoostValues)(Convert.ToInt32(curObj["ForegroundApplicationBoost"])));   
 559}   
 560set   
 561{   
 562curObj["ForegroundApplicationBoost"] = value;   
 563if (((isEmbedded == false)   
 564&amp;&amp; (AutoCommitProp == true)))   
 565{   
 566PrivateLateBoundObject.Put();   
 567}   
 568}   
 569}   
 570  
 571[Browsable(false)]   
 572[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 573public bool IsFreePhysicalMemoryNull   
 574{   
 575get   
 576{   
 577if ((curObj["FreePhysicalMemory"] == null))   
 578{   
 579return true;   
 580}   
 581else   
 582{   
 583return false;   
 584}   
 585}   
 586}   
 587  
 588[Browsable(true)]   
 589[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 590[Description("未使用的和可用的物理内存的 KB 数。")]   
 591[TypeConverter(typeof(WMIValueTypeConverter))]   
 592public System.UInt64 FreePhysicalMemory   
 593{   
 594get   
 595{   
 596if ((curObj["FreePhysicalMemory"] == null))   
 597{   
 598return System.Convert.ToUInt64(0);   
 599}   
 600return ((System.UInt64)(curObj["FreePhysicalMemory"]));   
 601}   
 602}   
 603  
 604[Browsable(false)]   
 605[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 606public bool IsFreeSpaceInPagingFilesNull   
 607{   
 608get   
 609{   
 610if ((curObj["FreeSpaceInPagingFiles"] == null))   
 611{   
 612return true;   
 613}   
 614else   
 615{   
 616return false;   
 617}   
 618}   
 619}   
 620  
 621[Browsable(true)]   
 622[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 623[Description("能够映射到操作系统的页面文件中,而且不会导致其他页被换出的全部 KB(千字节)数目。0 表示没有页面文件。")]   
 624[TypeConverter(typeof(WMIValueTypeConverter))]   
 625public System.UInt64 FreeSpaceInPagingFiles   
 626{   
 627get   
 628{   
 629if ((curObj["FreeSpaceInPagingFiles"] == null))   
 630{   
 631return System.Convert.ToUInt64(0);   
 632}   
 633return ((System.UInt64)(curObj["FreeSpaceInPagingFiles"]));   
 634}   
 635}   
 636  
 637[Browsable(false)]   
 638[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 639public bool IsFreeVirtualMemoryNull   
 640{   
 641get   
 642{   
 643if ((curObj["FreeVirtualMemory"] == null))   
 644{   
 645return true;   
 646}   
 647else   
 648{   
 649return false;   
 650}   
 651}   
 652}   
 653  
 654[Browsable(true)]   
 655[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 656[Description("当前没有使用的并且可用的虚拟内存的 KB 数。例如, 这可以通过将空闲 RAM 数目和空闲分页空间(如添加属性、FreePhysicalMemory 和 Free" +   
 657"SpaceInPagingFiles)相加得出。")]   
 658[TypeConverter(typeof(WMIValueTypeConverter))]   
 659public System.UInt64 FreeVirtualMemory   
 660{   
 661get   
 662{   
 663if ((curObj["FreeVirtualMemory"] == null))   
 664{   
 665return System.Convert.ToUInt64(0);   
 666}   
 667return ((System.UInt64)(curObj["FreeVirtualMemory"]));   
 668}   
 669}   
 670  
 671[Browsable(false)]   
 672[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 673public bool IsInstallDateNull   
 674{   
 675get   
 676{   
 677if ((curObj["InstallDate"] == null))   
 678{   
 679return true;   
 680}   
 681else   
 682{   
 683return false;   
 684}   
 685}   
 686}   
 687  
 688[Browsable(true)]   
 689[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 690[Description("InstallDate 属性是表示安装对象的日期时间值。没有值并不表示该对象没有安装。")]   
 691[TypeConverter(typeof(WMIValueTypeConverter))]   
 692public System.DateTime InstallDate   
 693{   
 694get   
 695{   
 696if ((curObj["InstallDate"] != null))   
 697{   
 698return ToDateTime(((string)(curObj["InstallDate"])));   
 699}   
 700else   
 701{   
 702return System.DateTime.MinValue;   
 703}   
 704}   
 705}   
 706  
 707[Browsable(false)]   
 708[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 709public bool IsLargeSystemCacheNull   
 710{   
 711get   
 712{   
 713if ((curObj["LargeSystemCache"] == null))   
 714{   
 715return true;   
 716}   
 717else   
 718{   
 719return false;   
 720}   
 721}   
 722}   
 723  
 724[Browsable(true)]   
 725[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 726[Description("LargeSystemCache 属性表明是否为应用程序 (value=0) 或系统性能 (value=1) 优化内存。")]   
 727[TypeConverter(typeof(WMIValueTypeConverter))]   
 728public LargeSystemCacheValues LargeSystemCache   
 729{   
 730get   
 731{   
 732if ((curObj["LargeSystemCache"] == null))   
 733{   
 734return ((LargeSystemCacheValues)(System.Convert.ToInt64(0)));   
 735}   
 736return ((LargeSystemCacheValues)(Convert.ToInt64(curObj["LargeSystemCache"])));   
 737}   
 738}   
 739  
 740[Browsable(false)]   
 741[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 742public bool IsLastBootUpTimeNull   
 743{   
 744get   
 745{   
 746if ((curObj["LastBootUpTime"] == null))   
 747{   
 748return true;   
 749}   
 750else   
 751{   
 752return false;   
 753}   
 754}   
 755}   
 756  
 757[Browsable(true)]   
 758[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 759[Description("操作系统最后一次启动的时间。")]   
 760[TypeConverter(typeof(WMIValueTypeConverter))]   
 761public System.DateTime LastBootUpTime   
 762{   
 763get   
 764{   
 765if ((curObj["LastBootUpTime"] != null))   
 766{   
 767return ToDateTime(((string)(curObj["LastBootUpTime"])));   
 768}   
 769else   
 770{   
 771return System.DateTime.MinValue;   
 772}   
 773}   
 774}   
 775  
 776[Browsable(false)]   
 777[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 778public bool IsLocalDateTimeNull   
 779{   
 780get   
 781{   
 782if ((curObj["LocalDateTime"] == null))   
 783{   
 784return true;   
 785}   
 786else   
 787{   
 788return false;   
 789}   
 790}   
 791}   
 792  
 793[Browsable(true)]   
 794[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 795[Description("操作系统的本地日期和时间标记。")]   
 796[TypeConverter(typeof(WMIValueTypeConverter))]   
 797public System.DateTime LocalDateTime   
 798{   
 799get   
 800{   
 801if ((curObj["LocalDateTime"] != null))   
 802{   
 803return ToDateTime(((string)(curObj["LocalDateTime"])));   
 804}   
 805else   
 806{   
 807return System.DateTime.MinValue;   
 808}   
 809}   
 810}   
 811  
 812[Browsable(true)]   
 813[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 814[Description("Locale 属性表示由操作系统使用的语言识别符。语言识别符是一个国家(地区)的标准国际号码的缩写。每种语言有一个语言识别符(LANGID),包含主要语言识别符和" +   
 815"次要语言识别符的 16 位值。")]   
 816public string Locale   
 817{   
 818get   
 819{   
 820return ((string)(curObj["Locale"]));   
 821}   
 822}   
 823  
 824[Browsable(true)]   
 825[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 826[Description("Manufacturer 属性表示操作系统制造商名称。对于 Win32 系统,这个值就是 Microsoft Corporation。")]   
 827public string Manufacturer   
 828{   
 829get   
 830{   
 831return ((string)(curObj["Manufacturer"]));   
 832}   
 833}   
 834  
 835[Browsable(false)]   
 836[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 837public bool IsMaxNumberOfProcessesNull   
 838{   
 839get   
 840{   
 841if ((curObj["MaxNumberOfProcesses"] == null))   
 842{   
 843return true;   
 844}   
 845else   
 846{   
 847return false;   
 848}   
 849}   
 850}   
 851  
 852[Browsable(true)]   
 853[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 854[Description("操作系统可以支持的过程上下文最大数量。如果没有固定的最大值,值应该是 0。有固定最大值的系统上,这个对象可以帮助诊断达到最大值时出现的故障。如果未知,输入 -1。" +   
 855"")]   
 856[TypeConverter(typeof(WMIValueTypeConverter))]   
 857public System.UInt32 MaxNumberOfProcesses   
 858{   
 859get   
 860{   
 861if ((curObj["MaxNumberOfProcesses"] == null))   
 862{   
 863return System.Convert.ToUInt32(0);   
 864}   
 865return ((System.UInt32)(curObj["MaxNumberOfProcesses"]));   
 866}   
 867}   
 868  
 869[Browsable(false)]   
 870[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 871public bool IsMaxProcessMemorySizeNull   
 872{   
 873get   
 874{   
 875if ((curObj["MaxProcessMemorySize"] == null))   
 876{   
 877return true;   
 878}   
 879else   
 880{   
 881return false;   
 882}   
 883}   
 884}   
 885  
 886[Browsable(true)]   
 887[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 888[Description("可以指派给一个进程的最大 KB 值内存。对于没有虚拟内存的操作系统,这个值一般来讲等于物理内存减去由 BIOS 和 OS 使用的内存得出。对于某些操作系统,这个值" +   
 889"可能是无限的 - 在这种情况下,应该键入 0。在其它情况下,这个值可能是固定的 - 例如, 2G 或 4G。")]   
 890[TypeConverter(typeof(WMIValueTypeConverter))]   
 891public System.UInt64 MaxProcessMemorySize   
 892{   
 893get   
 894{   
 895if ((curObj["MaxProcessMemorySize"] == null))   
 896{   
 897return System.Convert.ToUInt64(0);   
 898}   
 899return ((System.UInt64)(curObj["MaxProcessMemorySize"]));   
 900}   
 901}   
 902  
 903[Browsable(true)]   
 904[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 905[Description("继承的 Name 属性在计算机系统中作为操作系统范例的项。")]   
 906public string Name   
 907{   
 908get   
 909{   
 910return ((string)(curObj["Name"]));   
 911}   
 912}   
 913  
 914[Browsable(false)]   
 915[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 916public bool IsNumberOfLicensedUsersNull   
 917{   
 918get   
 919{   
 920if ((curObj["NumberOfLicensedUsers"] == null))   
 921{   
 922return true;   
 923}   
 924else   
 925{   
 926return false;   
 927}   
 928}   
 929}   
 930  
 931[Browsable(true)]   
 932[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 933[Description("操作系统的用户许可证数目。如果没有限制请键入 0。如果未知请键入 -1。")]   
 934[TypeConverter(typeof(WMIValueTypeConverter))]   
 935public System.UInt32 NumberOfLicensedUsers   
 936{   
 937get   
 938{   
 939if ((curObj["NumberOfLicensedUsers"] == null))   
 940{   
 941return System.Convert.ToUInt32(0);   
 942}   
 943return ((System.UInt32)(curObj["NumberOfLicensedUsers"]));   
 944}   
 945}   
 946  
 947[Browsable(false)]   
 948[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 949public bool IsNumberOfProcessesNull   
 950{   
 951get   
 952{   
 953if ((curObj["NumberOfProcesses"] == null))   
 954{   
 955return true;   
 956}   
 957else   
 958{   
 959return false;   
 960}   
 961}   
 962}   
 963  
 964[Browsable(true)]   
 965[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 966[Description("在操作系统上当前加载或运行的进程上下文数目。")]   
 967[TypeConverter(typeof(WMIValueTypeConverter))]   
 968public System.UInt32 NumberOfProcesses   
 969{   
 970get   
 971{   
 972if ((curObj["NumberOfProcesses"] == null))   
 973{   
 974return System.Convert.ToUInt32(0);   
 975}   
 976return ((System.UInt32)(curObj["NumberOfProcesses"]));   
 977}   
 978}   
 979  
 980[Browsable(false)]   
 981[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 982public bool IsNumberOfUsersNull   
 983{   
 984get   
 985{   
 986if ((curObj["NumberOfUsers"] == null))   
 987{   
 988return true;   
 989}   
 990else   
 991{   
 992return false;   
 993}   
 994}   
 995}   
 996  
 997[Browsable(true)]   
 998[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
 999[Description("操作系统为其存储当前状态信息的用户会话数。")]   
1000[TypeConverter(typeof(WMIValueTypeConverter))]   
1001public System.UInt32 NumberOfUsers   
1002{   
1003get   
1004{   
1005if ((curObj["NumberOfUsers"] == null))   
1006{   
1007return System.Convert.ToUInt32(0);   
1008}   
1009return ((System.UInt32)(curObj["NumberOfUsers"]));   
1010}   
1011}   
1012  
1013[Browsable(true)]   
1014[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1015[Description("Organization 属性指明了已注册用户(操作系统)的公司名称。\n例如,微软公司。")]   
1016public string Organization   
1017{   
1018get   
1019{   
1020return ((string)(curObj["Organization"]));   
1021}   
1022}   
1023  
1024[Browsable(false)]   
1025[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1026public bool IsOSLanguageNull   
1027{   
1028get   
1029{   
1030if ((curObj["OSLanguage"] == null))   
1031{   
1032return true;   
1033}   
1034else   
1035{   
1036return false;   
1037}   
1038}   
1039}   
1040  
1041[Browsable(true)]   
1042[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1043[Description("OSLanguage 属性表示操作系统安装的语言版本。\n例如: 0x0807 (德语、瑞士)")]   
1044[TypeConverter(typeof(WMIValueTypeConverter))]   
1045public System.UInt32 OSLanguage   
1046{   
1047get   
1048{   
1049if ((curObj["OSLanguage"] == null))   
1050{   
1051return System.Convert.ToUInt32(0);   
1052}   
1053return ((System.UInt32)(curObj["OSLanguage"]));   
1054}   
1055}   
1056  
1057[Browsable(false)]   
1058[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1059public bool IsOSProductSuiteNull   
1060{   
1061get   
1062{   
1063if ((curObj["OSProductSuite"] == null))   
1064{   
1065return true;   
1066}   
1067else   
1068{   
1069return false;   
1070}   
1071}   
1072}   
1073  
1074[Browsable(true)]   
1075[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1076[Description("OSProductSuite 属性表示操作系统的安装的和授权的系统产品。")]   
1077[TypeConverter(typeof(WMIValueTypeConverter))]   
1078public OSProductSuiteValues OSProductSuite   
1079{   
1080get   
1081{   
1082if ((curObj["OSProductSuite"] == null))   
1083{   
1084return ((OSProductSuiteValues)(System.Convert.ToInt32(0)));   
1085}   
1086return ((OSProductSuiteValues)(Convert.ToInt32(curObj["OSProductSuite"])));   
1087}   
1088}   
1089  
1090[Browsable(false)]   
1091[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1092public bool IsOSTypeNull   
1093{   
1094get   
1095{   
1096if ((curObj["OSType"] == null))   
1097{   
1098return true;   
1099}   
1100else   
1101{   
1102return false;   
1103}   
1104}   
1105}   
1106  
1107[Browsable(true)]   
1108[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1109[Description("表示操作系统种类的整数。")]   
1110[TypeConverter(typeof(WMIValueTypeConverter))]   
1111public OSTypeValues OSType   
1112{   
1113get   
1114{   
1115if ((curObj["OSType"] == null))   
1116{   
1117return ((OSTypeValues)(System.Convert.ToInt32(0)));   
1118}   
1119return ((OSTypeValues)(Convert.ToInt32(curObj["OSType"])));   
1120}   
1121}   
1122  
1123[Browsable(true)]   
1124[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1125[Description("描述制造商和操作系统种类的字符串 - 当操作系统属性、 OSType 设成 1 (“Other”)时使用。键入到 OtherTypeDescription 中的字" +   
1126"符串格式应该与为 OSType 定义的字符串值的格式相似。当 OSType 值为 1 以外的其它任何值时,OtherTypeDescription 应该设成 N" +   
1127"ULL。")]   
1128public string OtherTypeDescription   
1129{   
1130get   
1131{   
1132return ((string)(curObj["OtherTypeDescription"]));   
1133}   
1134}   
1135  
1136[Browsable(true)]   
1137[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1138[Description("PlusProductID 属性包含 Windows Plus! 操作系统增强软件(如果安装了的话)的产品识别号。")]   
1139public string PlusProductID   
1140{   
1141get   
1142{   
1143return ((string)(curObj["PlusProductID"]));   
1144}   
1145}   
1146  
1147[Browsable(true)]   
1148[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1149[Description("PlusVersionNumber 属性包含 Windows Plus! 操作系统增强软件(如果安装了的话)的版本号。")]   
1150public string PlusVersionNumber   
1151{   
1152get   
1153{   
1154return ((string)(curObj["PlusVersionNumber"]));   
1155}   
1156}   
1157  
1158[Browsable(false)]   
1159[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1160public bool IsPrimaryNull   
1161{   
1162get   
1163{   
1164if ((curObj["Primary"] == null))   
1165{   
1166return true;   
1167}   
1168else   
1169{   
1170return false;   
1171}   
1172}   
1173}   
1174  
1175[Browsable(true)]   
1176[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1177[Description("Primary 属性决定这是否是主要的操作系统。\n值: TRUE 或 FALSE。TRUE 值代表这是主要的操作系统。")]   
1178[TypeConverter(typeof(WMIValueTypeConverter))]   
1179public bool Primary   
1180{   
1181get   
1182{   
1183if ((curObj["Primary"] == null))   
1184{   
1185return System.Convert.ToBoolean(0);   
1186}   
1187return ((bool)(curObj["Primary"]));   
1188}   
1189}   
1190  
1191[Browsable(false)]   
1192[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1193public bool IsProductTypeNull   
1194{   
1195get   
1196{   
1197if ((curObj["ProductType"] == null))   
1198{   
1199return true;   
1200}   
1201else   
1202{   
1203return false;   
1204}   
1205}   
1206}   
1207  
1208[Browsable(true)]   
1209[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1210[Description("ProductType 表示有关此系统的额外信息。此数字可以是下面的一个值: \n1 - 工作站 \n2 - 域控制器 \n3 - 服务器")]   
1211[TypeConverter(typeof(WMIValueTypeConverter))]   
1212public ProductTypeValues ProductType   
1213{   
1214get   
1215{   
1216if ((curObj["ProductType"] == null))   
1217{   
1218return ((ProductTypeValues)(System.Convert.ToInt64(0)));   
1219}   
1220return ((ProductTypeValues)(Convert.ToInt64(curObj["ProductType"])));   
1221}   
1222}   
1223  
1224[Browsable(false)]   
1225[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1226public bool IsQuantumLengthNull   
1227{   
1228get   
1229{   
1230if ((curObj["QuantumLength"] == null))   
1231{   
1232return true;   
1233}   
1234else   
1235{   
1236return false;   
1237}   
1238}   
1239}   
1240  
1241[Browsable(true)]   
1242[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1243[Description("QuantumLength 属性定义每个量子的钟表嘀嗒数。一个量子是计划程序在转换到其它应用程序之前给应用程序的执行时间单位。当线程运行一个量子时,内核占先它并唯" +   
1244"有同等优先权的应用程序将其移到列队尾端。线程的量子的实际长度在各种 Windows 平台上不同。只用于 Windows NT/Windows 2000。")]   
1245[TypeConverter(typeof(WMIValueTypeConverter))]   
1246public QuantumLengthValues QuantumLength   
1247{   
1248get   
1249{   
1250if ((curObj["QuantumLength"] == null))   
1251{   
1252return ((QuantumLengthValues)(System.Convert.ToInt32(0)));   
1253}   
1254return ((QuantumLengthValues)(Convert.ToInt32(curObj["QuantumLength"])));   
1255}   
1256set   
1257{   
1258curObj["QuantumLength"] = value;   
1259if (((isEmbedded == false)   
1260&amp;&amp; (AutoCommitProp == true)))   
1261{   
1262PrivateLateBoundObject.Put();   
1263}   
1264}   
1265}   
1266  
1267[Browsable(false)]   
1268[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1269public bool IsQuantumTypeNull   
1270{   
1271get   
1272{   
1273if ((curObj["QuantumType"] == null))   
1274{   
1275return true;   
1276}   
1277else   
1278{   
1279return false;   
1280}   
1281}   
1282}   
1283  
1284[Browsable(true)]   
1285[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1286[Description(@"QuantumType 属性指定了使用固定或可变长度量程。Windows NT 4.0 工作站/Windows 2000 缺省时采用可变长度量程,其前台应用程序的量程比后台应用程序的要长。Windows NT 服务器缺省时采用固定长度量程。量程是一种执行时间单位,在切换到另一个应用程序前,允许调度程序将它指定给某个应用程序。对于具有相等优先级的应用程序,当某线程运行了一个量程时,内核程序会抢占它,并将其移到队列末端。在不同的 Windows 平台上,线程的量程的实际长度会有所不同。仅适用于 Windows NT/Windows 2000。   
1287该属性的取值情况如下:   
12880 =Unkown –量程类型未知,   
12891 = Fixed –量程长度固定,   
12902 = Variable –量程长度可变。")]   
1291[TypeConverter(typeof(WMIValueTypeConverter))]   
1292public QuantumTypeValues QuantumType   
1293{   
1294get   
1295{   
1296if ((curObj["QuantumType"] == null))   
1297{   
1298return ((QuantumTypeValues)(System.Convert.ToInt32(0)));   
1299}   
1300return ((QuantumTypeValues)(Convert.ToInt32(curObj["QuantumType"])));   
1301}   
1302set   
1303{   
1304curObj["QuantumType"] = value;   
1305if (((isEmbedded == false)   
1306&amp;&amp; (AutoCommitProp == true)))   
1307{   
1308PrivateLateBoundObject.Put();   
1309}   
1310}   
1311}   
1312  
1313[Browsable(true)]   
1314[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]   
1315[Description("RegisteredUser 属性表示操作系统的注册的用户名。\n例如: Jane Doe")]   
1316public string RegisteredUser   
1317{   
1318get   
1319{   
1320return ((string)(curObj["RegisteredUser"]));   
1321}   
1322}   
1323&amp;nbs</propertyname></propertyname></propertyname></propertyname>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus