用WMI获取远程机器操作系统的详细信息
使用WMI獲取遠程機器操作系統(tǒng)的詳細信息
大雜燴-.NET
代碼主題部分的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("發(fā)生了一個異常。");
???Console.WriteLine(ee.Message);
??}
?}
}
???
???
?// ShouldSerialize<PropertyName> 函數(shù)是 VS 屬性瀏覽器用來檢查具體某個屬性是否必須序列化的函數(shù)。為所有 ValueType 屬性(類型為 Int32、BOOL 等的屬性,不能將它們設置為空)添加這些函數(shù)。這些函數(shù)使用 Is<PropertyName>Null 函數(shù)。這些函數(shù)還在屬性的 TypeConverter 實現(xiàn)中用來檢查屬性的 NULL 值,以便在 Visual Studio 中進行拖放操作時可以在屬性瀏覽器中顯示空值。
?// 函數(shù) Is<PropertyName>Null() 用于檢查屬性是否為 NULL。
?// 為可為空值的讀/寫屬性添加 Reset<PropertyName> 函數(shù)。這些函數(shù)由 VS 設計器用來在屬性瀏覽器中將屬性設置為 NULL。
?// 添加到 WMI 屬性的類的每個屬性都有定義其在 Visual Studio 設計器中的行為以及定義要使用的 TypeConverter 的特性集。
?// DateTime 轉(zhuǎn)換函數(shù) ToDateTime 和 ToDmtfDateTime 添加到類以將 DMTF 日期時間轉(zhuǎn)換為 System.DateTime (或相反)。
?// 為 WMI 類生成的早期綁定類。Win32_OperatingSystem
?public class OperatingSystem : System.ComponentModel.Component
?{
???????
??// 用于保存該類所駐留的 WMI 命名空間的私有屬性。
??private static string CreatedWmiNamespace = "ROOT\\CIMV2";
???????
??// 私有屬性,保存創(chuàng)建此類的 WMI 類的名稱。
??private static string CreatedClassName = "Win32_OperatingSystem";
???????
??// 用于保存由各種方法使用的 ManagementScope 的私有成員變量。
??private static System.Management.ManagementScope statMgmtScope = null;
???????
??private ManagementSystemProperties PrivateSystemProperties;
???????
??// 基礎 LateBound WMI 對象。
??private System.Management.ManagementObject PrivateLateBoundObject;
???????
??// 存儲類的“自動提交”行為的成員變量。
??private bool AutoCommitProp = true;
???????
??// 保存表示實例的嵌入屬性的私有變量。
??private System.Management.ManagementBaseObject embeddedObj;
???????
??// 所使用的當前 WMI 對象
??private System.Management.ManagementBaseObject curObj;
???????
??// 用于指示實例是否為嵌入對象的標志。
??private bool isEmbedded = false;
???????
??// 以下是用 WMI 對象初始化類實例的構(gòu)造函數(shù)的不同重載。
??public OperatingSystem() :
???this(((System.Management.ManagementScope)(null)), ((System.Management.ManagementPath)(null)), ((System.Management.ObjectGetOptions)(null)))
??{
??}
???????
??public OperatingSystem(string keyName) :
???this(((System.Management.ManagementScope)(null)), ((System.Management.ManagementPath)(new System.Management.ManagementPath(OperatingSystem.ConstructPath(keyName)))), ((System.Management.ObjectGetOptions)(null)))
??{
??}
???????
??public OperatingSystem(System.Management.ManagementScope mgmtScope, string keyName) :
???this(((System.Management.ManagementScope)(mgmtScope)), ((System.Management.ManagementPath)(new System.Management.ManagementPath(OperatingSystem.ConstructPath(keyName)))), ((System.Management.ObjectGetOptions)(null)))
??{
??}
???????
??public OperatingSystem(System.Management.ManagementPath path, System.Management.ObjectGetOptions getOptions) :
???this(((System.Management.ManagementScope)(null)), ((System.Management.ManagementPath)(path)), ((System.Management.ObjectGetOptions)(getOptions)))
??{
??}
???????
??public OperatingSystem(System.Management.ManagementScope mgmtScope, System.Management.ManagementPath path) :
???this(((System.Management.ManagementScope)(mgmtScope)), ((System.Management.ManagementPath)(path)), ((System.Management.ObjectGetOptions)(null)))
??{
??}
???????
??public OperatingSystem(System.Management.ManagementPath path) :
???this(((System.Management.ManagementScope)(null)), ((System.Management.ManagementPath)(path)), ((System.Management.ObjectGetOptions)(null)))
??{
??}
???????
??public OperatingSystem(System.Management.ManagementScope mgmtScope, System.Management.ManagementPath path, System.Management.ObjectGetOptions getOptions)
??{
???if ((path != null))
???{
????if ((CheckIfProperClass(mgmtScope, path, getOptions) != true))
????{
?????throw new System.ArgumentException("類名不匹配。");
????}
???}
???PrivateLateBoundObject = new System.Management.ManagementObject(mgmtScope, path, getOptions);
???PrivateSystemProperties = new ManagementSystemProperties(PrivateLateBoundObject);
???curObj = PrivateLateBoundObject;
??}
???????
??public OperatingSystem(System.Management.ManagementObject theObject)
??{
???if ((CheckIfProperClass(theObject) == true))
???{
????PrivateLateBoundObject = theObject;
????PrivateSystemProperties = new ManagementSystemProperties(PrivateLateBoundObject);
????curObj = PrivateLateBoundObject;
???}
???else
???{
????throw new System.ArgumentException("類名不匹配。");
???}
??}
???????
??public OperatingSystem(System.Management.ManagementBaseObject theObject)
??{
???if ((CheckIfProperClass(theObject) == true))
???{
????embeddedObj = theObject;
????PrivateSystemProperties = new ManagementSystemProperties(theObject);
????curObj = embeddedObj;
????isEmbedded = true;
???}
???else
???{
????throw new System.ArgumentException("類名不匹配。");
???}
??}
???????
??// 屬性返回 WMI 類的命名空間。
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public string OriginatingNamespace
??{
???get
???{
????return "ROOT\\CIMV2";
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public string ManagementClassName
??{
???get
???{
????string strRet = CreatedClassName;
????if ((curObj != null))
????{
?????if ((curObj.ClassPath != null))
?????{
??????strRet = ((string)(curObj["__CLASS"]));
??????if (((strRet == null)
???????|| (strRet == System.String.Empty)))
??????{
???????strRet = CreatedClassName;
??????}
?????}
????}
????return strRet;
???}
??}
???????
??// 指向嵌入對象以獲取 WMI 對象的系統(tǒng)屬性的屬性。
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public ManagementSystemProperties SystemProperties
??{
???get
???{
????return PrivateSystemProperties;
???}
??}
???????
??// 返回基礎 LateBound 對象的屬性。
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public System.Management.ManagementBaseObject LateBoundObject
??{
???get
???{
????return curObj;
???}
??}
???????
??// 對象的 ManagementScope。
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public System.Management.ManagementScope Scope
??{
???get
???{
????if ((isEmbedded == false))
????{
?????return PrivateLateBoundObject.Scope;
????}
????else
????{
?????return null;
????}
???}
???set
???{
????if ((isEmbedded == false))
????{
?????PrivateLateBoundObject.Scope = value;
????}
???}
??}
???????
??/// <summary>
??///? 顯示 WMI 對象的提交行為的屬性。如果為 true,則 WMI 對象在每次屬性修改后都自動保存(即在修改屬性后調(diào)用 Put())。
??/// </summary>
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool AutoCommit
??{
???get
???{
????return AutoCommitProp;
???}
???set
???{
????AutoCommitProp = value;
???}
??}
???????
??// 基礎 WMI 對象的 ManagementPath。
??[Browsable(true)]
??public System.Management.ManagementPath Path
??{
???get
???{
????if ((isEmbedded == false))
????{
?????return PrivateLateBoundObject.Path;
????}
????else
????{
?????return null;
????}
???}
???set
???{
????if ((isEmbedded == false))
????{
?????if ((CheckIfProperClass(null, value, null) != true))
?????{
??????throw new System.ArgumentException("類名不匹配。");
?????}
?????PrivateLateBoundObject.Path = value;
????}
???}
??}
???????
??// 由各種方法使用的公共靜態(tài)范圍屬性。
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public static System.Management.ManagementScope StaticScope
??{
???get
???{
????return statMgmtScope;
???}
???set
???{
????statMgmtScope = value;
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("BootDevice 屬性表示 Win32 操作系統(tǒng)啟動的那個磁盤驅(qū)動器的名稱。\n例如: \\\\Device\\Harddisk0。")]
??public string BootDevice
??{
???get
???{
????return ((string)(curObj["BootDevice"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("BuildNumber 屬性表示操作系統(tǒng)的內(nèi)部版本號碼。可用于比產(chǎn)品發(fā)行版本號更精確的版本信息。\n例如: 1381")]
??public string BuildNumber
??{
???get
???{
????return ((string)(curObj["BuildNumber"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("BuildType 屬性表示用于操作系統(tǒng)的內(nèi)部版本種類。如銷售版本和檢查版本。")]
??public string BuildType
??{
???get
???{
????return ((string)(curObj["BuildType"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Caption 屬性為對象的簡短文字描述(一行字符串)。")]
??public string Caption
??{
???get
???{
????return ((string)(curObj["Caption"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("CodeSet 屬性表示由操作系統(tǒng)使用的編碼頁值。編碼頁包含由操作系統(tǒng)為不同語言翻譯字符串的字符表。American National Standards Ins" +
??? "titute (ANSI)列出代表定義過的編碼頁的值。如果操作系統(tǒng)不使用 ANSI 編碼頁,這個成員就會被設為 0。CodeSet 字符串可用六個字符定義編碼頁" +
??? "的值。\n例如: 1255。")]
??public string CodeSet
??{
???get
???{
????return ((string)(curObj["CodeSet"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("CountryCode 屬性表示由操作系統(tǒng)使用的國家(地區(qū))編碼。值是根據(jù)國際電話撥號的前綴(還作為 IBM 國家(地區(qū))編碼)。CountryCode 字符串可" +
??? "使用六個字符定義國家(地區(qū))編碼的值。\n例如: 1 代表美國)")]
??public string CountryCode
??{
???get
???{
????return ((string)(curObj["CountryCode"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("CreationClassName 表示用來創(chuàng)建范例的類別或子類別的名稱。當與這個類別的其它主要屬性一起使用時,這個屬性允許為這個類別及其子類別的所有范例作唯一識" +
??? "別。")]
??public string CreationClassName
??{
???get
???{
????return ((string)(curObj["CreationClassName"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("CSCreationClassName 包含作用域計算機系統(tǒng)的創(chuàng)建類別名稱。")]
??public string CSCreationClassName
??{
???get
???{
????return ((string)(curObj["CSCreationClassName"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("CSDVersion 屬性包含一個 null 結(jié)尾的字符串,可表示安裝在計算機系統(tǒng)上的最新服務包。如果沒有安裝服務包,該值為 NULL。對于運行 Windows " +
??? "95 的計算機系統(tǒng),這個屬性包含提供仲裁有關其它操作系統(tǒng)的信息的一個 null 結(jié)尾的字符串。\n例如: Service Pack 3。")]
??public string CSDVersion
??{
???get
???{
????return ((string)(curObj["CSDVersion"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("CSName 包含作用域計算機系統(tǒng)的名稱。")]
??public string CSName
??{
???get
???{
????return ((string)(curObj["CSName"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsCurrentTimeZoneNull
??{
???get
???{
????if ((curObj["CurrentTimeZone"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("CurrentTimeZone 表示操作系統(tǒng)從格林威治時間調(diào)整的分鐘數(shù)。數(shù)字不是正數(shù)、負數(shù)就是零。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public short CurrentTimeZone
??{
???get
???{
????if ((curObj["CurrentTimeZone"] == null))
????{
?????return System.Convert.ToInt16(0);
????}
????return ((short)(curObj["CurrentTimeZone"]));
???}
???set
???{
????curObj["CurrentTimeZone"] = value;
????if (((isEmbedded == false)
?????&& (AutoCommitProp == true)))
????{
?????PrivateLateBoundObject.Put();
????}
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsDebugNull
??{
???get
???{
????if ((curObj["Debug"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Debug 屬性表示是否檢查過(調(diào)試)操作系統(tǒng)內(nèi)部版本。查過的內(nèi)部版本提供了錯誤檢查、參數(shù)驗證和系統(tǒng)調(diào)試編碼。其它在檢查過的二進制產(chǎn)生的內(nèi)核調(diào)試錯誤消息和調(diào)試程序" +
??? "終斷。這可以幫助立即確定錯誤的原因和位置。操作由于執(zhí)行的其它編碼在檢查過的內(nèi)部版本而受影響。\n值: TRUE 或 FALSE, TRUE 值代表安裝了 User" +
??? ".exe 的調(diào)試版本。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public bool Debug
??{
???get
???{
????if ((curObj["Debug"] == null))
????{
?????return System.Convert.ToBoolean(0);
????}
????return ((bool)(curObj["Debug"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Description 屬性提供 Windows 操作系統(tǒng)的描述。某些用戶的界面(那些允許編輯這個描述的)將其長度限制到 48 個字符。")]
??public string Description
??{
???get
???{
????return ((string)(curObj["Description"]));
???}
???set
???{
????curObj["Description"] = value;
????if (((isEmbedded == false)
?????&& (AutoCommitProp == true)))
????{
?????PrivateLateBoundObject.Put();
????}
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsDistributedNull
??{
???get
???{
????if ((curObj["Distributed"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("波爾值表示操作系統(tǒng)是否在幾個計算機系統(tǒng)節(jié)點上發(fā)行。如果是這樣的話,這些節(jié)點應該組成一個群集。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public bool Distributed
??{
???get
???{
????if ((curObj["Distributed"] == null))
????{
?????return System.Convert.ToBoolean(0);
????}
????return ((bool)(curObj["Distributed"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsEncryptionLevelNull
??{
???get
???{
????if ((curObj["EncryptionLevel"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("EncryptionLevel 屬性用于表示為安全交易所使用的加密級別,40 位、128 位或 n 位。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public EncryptionLevelValues EncryptionLevel
??{
???get
???{
????if ((curObj["EncryptionLevel"] == null))
????{
?????return ((EncryptionLevelValues)(System.Convert.ToInt32(0)));
????}
????return ((EncryptionLevelValues)(Convert.ToInt32(curObj["EncryptionLevel"])));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsForegroundApplicationBoostNull
??{
???get
???{
????if ((curObj["ForegroundApplicationBoost"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description(@"ForegroundApplicationBoost 屬性表示給前景應用程序增加的優(yōu)先性。在運行 Windows NT 4.0 和 Windows 2000 的計算機系統(tǒng)上,應用程序擴大是由給應用程序更多的時間(quantum lengths)而實現(xiàn)的。ForegroundApplicationBoost 值為 0 時表示系統(tǒng)擴大了 6 個量子長度; 如果為 1,那么就是 12; 并且如果是 2 那么就是 18。在 Windows NT 3.51 和更早的版本上,應用程序擴大是由增加日程安排的優(yōu)先權來實現(xiàn)的。對于這些系統(tǒng)來說,日程安排的優(yōu)先權是由這個屬性得知增加的。默認值為 2。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public ForegroundApplicationBoostValues ForegroundApplicationBoost
??{
???get
???{
????if ((curObj["ForegroundApplicationBoost"] == null))
????{
?????return ((ForegroundApplicationBoostValues)(System.Convert.ToInt32(0)));
????}
????return ((ForegroundApplicationBoostValues)(Convert.ToInt32(curObj["ForegroundApplicationBoost"])));
???}
???set
???{
????curObj["ForegroundApplicationBoost"] = value;
????if (((isEmbedded == false)
?????&& (AutoCommitProp == true)))
????{
?????PrivateLateBoundObject.Put();
????}
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsFreePhysicalMemoryNull
??{
???get
???{
????if ((curObj["FreePhysicalMemory"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("未使用的和可用的物理內(nèi)存的 KB 數(shù)。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt64 FreePhysicalMemory
??{
???get
???{
????if ((curObj["FreePhysicalMemory"] == null))
????{
?????return System.Convert.ToUInt64(0);
????}
????return ((System.UInt64)(curObj["FreePhysicalMemory"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsFreeSpaceInPagingFilesNull
??{
???get
???{
????if ((curObj["FreeSpaceInPagingFiles"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("能夠映射到操作系統(tǒng)的頁面文件中,而且不會導致其他頁被換出的全部 KB(千字節(jié))數(shù)目。0 表示沒有頁面文件。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt64 FreeSpaceInPagingFiles
??{
???get
???{
????if ((curObj["FreeSpaceInPagingFiles"] == null))
????{
?????return System.Convert.ToUInt64(0);
????}
????return ((System.UInt64)(curObj["FreeSpaceInPagingFiles"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsFreeVirtualMemoryNull
??{
???get
???{
????if ((curObj["FreeVirtualMemory"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("當前沒有使用的并且可用的虛擬內(nèi)存的 KB 數(shù)。例如, 這可以通過將空閑 RAM 數(shù)目和空閑分頁空間(如添加屬性、FreePhysicalMemory 和 Free" +
??? "SpaceInPagingFiles)相加得出。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt64 FreeVirtualMemory
??{
???get
???{
????if ((curObj["FreeVirtualMemory"] == null))
????{
?????return System.Convert.ToUInt64(0);
????}
????return ((System.UInt64)(curObj["FreeVirtualMemory"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsInstallDateNull
??{
???get
???{
????if ((curObj["InstallDate"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("InstallDate 屬性是表示安裝對象的日期時間值。沒有值并不表示該對象沒有安裝。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.DateTime InstallDate
??{
???get
???{
????if ((curObj["InstallDate"] != null))
????{
?????return ToDateTime(((string)(curObj["InstallDate"])));
????}
????else
????{
?????return System.DateTime.MinValue;
????}
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsLargeSystemCacheNull
??{
???get
???{
????if ((curObj["LargeSystemCache"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("LargeSystemCache 屬性表明是否為應用程序 (value=0) 或系統(tǒng)性能 (value=1) 優(yōu)化內(nèi)存。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public LargeSystemCacheValues LargeSystemCache
??{
???get
???{
????if ((curObj["LargeSystemCache"] == null))
????{
?????return ((LargeSystemCacheValues)(System.Convert.ToInt64(0)));
????}
????return ((LargeSystemCacheValues)(Convert.ToInt64(curObj["LargeSystemCache"])));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsLastBootUpTimeNull
??{
???get
???{
????if ((curObj["LastBootUpTime"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("操作系統(tǒng)最后一次啟動的時間。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.DateTime LastBootUpTime
??{
???get
???{
????if ((curObj["LastBootUpTime"] != null))
????{
?????return ToDateTime(((string)(curObj["LastBootUpTime"])));
????}
????else
????{
?????return System.DateTime.MinValue;
????}
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsLocalDateTimeNull
??{
???get
???{
????if ((curObj["LocalDateTime"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("操作系統(tǒng)的本地日期和時間標記。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.DateTime LocalDateTime
??{
???get
???{
????if ((curObj["LocalDateTime"] != null))
????{
?????return ToDateTime(((string)(curObj["LocalDateTime"])));
????}
????else
????{
?????return System.DateTime.MinValue;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Locale 屬性表示由操作系統(tǒng)使用的語言識別符。語言識別符是一個國家(地區(qū))的標準國際號碼的縮寫。每種語言有一個語言識別符(LANGID),包含主要語言識別符和" +
??? "次要語言識別符的 16 位值。")]
??public string Locale
??{
???get
???{
????return ((string)(curObj["Locale"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Manufacturer 屬性表示操作系統(tǒng)制造商名稱。對于 Win32 系統(tǒng),這個值就是 Microsoft Corporation。")]
??public string Manufacturer
??{
???get
???{
????return ((string)(curObj["Manufacturer"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsMaxNumberOfProcessesNull
??{
???get
???{
????if ((curObj["MaxNumberOfProcesses"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("操作系統(tǒng)可以支持的過程上下文最大數(shù)量。如果沒有固定的最大值,值應該是 0。有固定最大值的系統(tǒng)上,這個對象可以幫助診斷達到最大值時出現(xiàn)的故障。如果未知,輸入 -1。" +
??? "")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt32 MaxNumberOfProcesses
??{
???get
???{
????if ((curObj["MaxNumberOfProcesses"] == null))
????{
?????return System.Convert.ToUInt32(0);
????}
????return ((System.UInt32)(curObj["MaxNumberOfProcesses"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsMaxProcessMemorySizeNull
??{
???get
???{
????if ((curObj["MaxProcessMemorySize"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("可以指派給一個進程的最大 KB 值內(nèi)存。對于沒有虛擬內(nèi)存的操作系統(tǒng),這個值一般來講等于物理內(nèi)存減去由 BIOS 和 OS 使用的內(nèi)存得出。對于某些操作系統(tǒng),這個值" +
??? "可能是無限的 - 在這種情況下,應該鍵入 0。在其它情況下,這個值可能是固定的 - 例如, 2G 或 4G。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt64 MaxProcessMemorySize
??{
???get
???{
????if ((curObj["MaxProcessMemorySize"] == null))
????{
?????return System.Convert.ToUInt64(0);
????}
????return ((System.UInt64)(curObj["MaxProcessMemorySize"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("繼承的 Name 屬性在計算機系統(tǒng)中作為操作系統(tǒng)范例的項。")]
??public string Name
??{
???get
???{
????return ((string)(curObj["Name"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsNumberOfLicensedUsersNull
??{
???get
???{
????if ((curObj["NumberOfLicensedUsers"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("操作系統(tǒng)的用戶許可證數(shù)目。如果沒有限制請鍵入 0。如果未知請鍵入 -1。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt32 NumberOfLicensedUsers
??{
???get
???{
????if ((curObj["NumberOfLicensedUsers"] == null))
????{
?????return System.Convert.ToUInt32(0);
????}
????return ((System.UInt32)(curObj["NumberOfLicensedUsers"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsNumberOfProcessesNull
??{
???get
???{
????if ((curObj["NumberOfProcesses"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("在操作系統(tǒng)上當前加載或運行的進程上下文數(shù)目。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt32 NumberOfProcesses
??{
???get
???{
????if ((curObj["NumberOfProcesses"] == null))
????{
?????return System.Convert.ToUInt32(0);
????}
????return ((System.UInt32)(curObj["NumberOfProcesses"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsNumberOfUsersNull
??{
???get
???{
????if ((curObj["NumberOfUsers"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("操作系統(tǒng)為其存儲當前狀態(tài)信息的用戶會話數(shù)。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt32 NumberOfUsers
??{
???get
???{
????if ((curObj["NumberOfUsers"] == null))
????{
?????return System.Convert.ToUInt32(0);
????}
????return ((System.UInt32)(curObj["NumberOfUsers"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Organization 屬性指明了已注冊用戶(操作系統(tǒng))的公司名稱。\n例如,微軟公司。")]
??public string Organization
??{
???get
???{
????return ((string)(curObj["Organization"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsOSLanguageNull
??{
???get
???{
????if ((curObj["OSLanguage"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("OSLanguage 屬性表示操作系統(tǒng)安裝的語言版本。\n例如: 0x0807 (德語、瑞士)")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt32 OSLanguage
??{
???get
???{
????if ((curObj["OSLanguage"] == null))
????{
?????return System.Convert.ToUInt32(0);
????}
????return ((System.UInt32)(curObj["OSLanguage"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsOSProductSuiteNull
??{
???get
???{
????if ((curObj["OSProductSuite"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("OSProductSuite 屬性表示操作系統(tǒng)的安裝的和授權的系統(tǒng)產(chǎn)品。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public OSProductSuiteValues OSProductSuite
??{
???get
???{
????if ((curObj["OSProductSuite"] == null))
????{
?????return ((OSProductSuiteValues)(System.Convert.ToInt32(0)));
????}
????return ((OSProductSuiteValues)(Convert.ToInt32(curObj["OSProductSuite"])));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsOSTypeNull
??{
???get
???{
????if ((curObj["OSType"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("表示操作系統(tǒng)種類的整數(shù)。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public OSTypeValues OSType
??{
???get
???{
????if ((curObj["OSType"] == null))
????{
?????return ((OSTypeValues)(System.Convert.ToInt32(0)));
????}
????return ((OSTypeValues)(Convert.ToInt32(curObj["OSType"])));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("描述制造商和操作系統(tǒng)種類的字符串 - 當操作系統(tǒng)屬性、 OSType 設成 1 (“Other”)時使用。鍵入到 OtherTypeDescription 中的字" +
??? "符串格式應該與為 OSType 定義的字符串值的格式相似。當 OSType 值為 1 以外的其它任何值時,OtherTypeDescription 應該設成 N" +
??? "ULL。")]
??public string OtherTypeDescription
??{
???get
???{
????return ((string)(curObj["OtherTypeDescription"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("PlusProductID 屬性包含 Windows Plus! 操作系統(tǒng)增強軟件(如果安裝了的話)的產(chǎn)品識別號。")]
??public string PlusProductID
??{
???get
???{
????return ((string)(curObj["PlusProductID"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("PlusVersionNumber 屬性包含 Windows Plus! 操作系統(tǒng)增強軟件(如果安裝了的話)的版本號。")]
??public string PlusVersionNumber
??{
???get
???{
????return ((string)(curObj["PlusVersionNumber"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsPrimaryNull
??{
???get
???{
????if ((curObj["Primary"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Primary 屬性決定這是否是主要的操作系統(tǒng)。\n值: TRUE 或 FALSE。TRUE 值代表這是主要的操作系統(tǒng)。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public bool Primary
??{
???get
???{
????if ((curObj["Primary"] == null))
????{
?????return System.Convert.ToBoolean(0);
????}
????return ((bool)(curObj["Primary"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsProductTypeNull
??{
???get
???{
????if ((curObj["ProductType"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("ProductType 表示有關此系統(tǒng)的額外信息。此數(shù)字可以是下面的一個值: \n1 - 工作站 \n2 - 域控制器 \n3 - 服務器")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public ProductTypeValues ProductType
??{
???get
???{
????if ((curObj["ProductType"] == null))
????{
?????return ((ProductTypeValues)(System.Convert.ToInt64(0)));
????}
????return ((ProductTypeValues)(Convert.ToInt64(curObj["ProductType"])));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsQuantumLengthNull
??{
???get
???{
????if ((curObj["QuantumLength"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("QuantumLength 屬性定義每個量子的鐘表嘀嗒數(shù)。一個量子是計劃程序在轉(zhuǎn)換到其它應用程序之前給應用程序的執(zhí)行時間單位。當線程運行一個量子時,內(nèi)核占先它并唯" +
??? "有同等優(yōu)先權的應用程序?qū)⑵湟频搅嘘犖捕恕>€程的量子的實際長度在各種 Windows 平臺上不同。只用于 Windows NT/Windows 2000。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public QuantumLengthValues QuantumLength
??{
???get
???{
????if ((curObj["QuantumLength"] == null))
????{
?????return ((QuantumLengthValues)(System.Convert.ToInt32(0)));
????}
????return ((QuantumLengthValues)(Convert.ToInt32(curObj["QuantumLength"])));
???}
???set
???{
????curObj["QuantumLength"] = value;
????if (((isEmbedded == false)
?????&& (AutoCommitProp == true)))
????{
?????PrivateLateBoundObject.Put();
????}
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsQuantumTypeNull
??{
???get
???{
????if ((curObj["QuantumType"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description(@"QuantumType 屬性指定了使用固定或可變長度量程。Windows NT 4.0 工作站/Windows 2000 缺省時采用可變長度量程,其前臺應用程序的量程比后臺應用程序的要長。Windows NT 服務器缺省時采用固定長度量程。量程是一種執(zhí)行時間單位,在切換到另一個應用程序前,允許調(diào)度程序?qū)⑺付ńo某個應用程序。對于具有相等優(yōu)先級的應用程序,當某線程運行了一個量程時,內(nèi)核程序會搶占它,并將其移到隊列末端。在不同的 Windows 平臺上,線程的量程的實際長度會有所不同。僅適用于 Windows NT/Windows 2000。
該屬性的取值情況如下:
0 =Unkown –量程類型未知,
1 = Fixed –量程長度固定,
2 = Variable –量程長度可變。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public QuantumTypeValues QuantumType
??{
???get
???{
????if ((curObj["QuantumType"] == null))
????{
?????return ((QuantumTypeValues)(System.Convert.ToInt32(0)));
????}
????return ((QuantumTypeValues)(Convert.ToInt32(curObj["QuantumType"])));
???}
???set
???{
????curObj["QuantumType"] = value;
????if (((isEmbedded == false)
?????&& (AutoCommitProp == true)))
????{
?????PrivateLateBoundObject.Put();
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("RegisteredUser 屬性表示操作系統(tǒng)的注冊的用戶名。\n例如: Jane Doe")]
??public string RegisteredUser
??{
???get
???{
????return ((string)(curObj["RegisteredUser"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("SerialNumber 屬性指明了操作系統(tǒng)產(chǎn)品的序列標識號。\n例如,10497-OEM-0031416-71674。")]
??public string SerialNumber
??{
???get
???{
????return ((string)(curObj["SerialNumber"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsServicePackMajorVersionNull
??{
???get
???{
????if ((curObj["ServicePackMajorVersion"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("ServicePackMajorVersion 屬性表示安裝在計算機系統(tǒng)上的服務包的主要版本號。如果沒有安裝服務包,該這為零。ServicePackMajorVe" +
??? "rsion 只在 Windows 2000 或更新版本(否則為 NULL)上運行的計算機上有效。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt16 ServicePackMajorVersion
??{
???get
???{
????if ((curObj["ServicePackMajorVersion"] == null))
????{
?????return System.Convert.ToUInt16(0);
????}
????return ((System.UInt16)(curObj["ServicePackMajorVersion"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsServicePackMinorVersionNull
??{
???get
???{
????if ((curObj["ServicePackMinorVersion"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("ServicePackMinorVersion 屬性表示安裝在計算機系統(tǒng)上的服務包的次要版本號。如果沒有安裝服務包,該這為零。ServicePackMajorVe" +
??? "rsion 只在 Windows 2000 或更新版本(否則為 NULL)上運行的計算機上有效。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt16 ServicePackMinorVersion
??{
???get
???{
????if ((curObj["ServicePackMinorVersion"] == null))
????{
?????return System.Convert.ToUInt16(0);
????}
????return ((System.UInt16)(curObj["ServicePackMinorVersion"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsSizeStoredInPagingFilesNull
??{
???get
???{
????if ((curObj["SizeStoredInPagingFiles"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("可以儲存在操作系統(tǒng)的頁面文件中的 KB 總數(shù)。注意,這個數(shù)字不代表磁盤上頁面文件的實際物理大小。0 表示沒有頁面文件。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt64 SizeStoredInPagingFiles
??{
???get
???{
????if ((curObj["SizeStoredInPagingFiles"] == null))
????{
?????return System.Convert.ToUInt64(0);
????}
????return ((System.UInt64)(curObj["SizeStoredInPagingFiles"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Status 屬性為表示對象當前狀態(tài)的字符串。可定義不同的操作和非操作狀態(tài)。操作狀態(tài)為 “確定”、“已降級” 和“預見故障”。“預見故障”表示一個組件可能運行正常" +
??? "但預見很快會出現(xiàn)故障。例如 SMART 啟用的硬盤驅(qū)動器。還可指定非操作狀態(tài)。這些狀態(tài)為 “錯誤”、“啟動”、“停止” 和“服務”。后者“服務”可用于磁盤鏡像," +
??? "重新加載用戶權限列表,或其它管理作業(yè)。不是所有這類作業(yè)都聯(lián)機; 但是,被管理的組件不是 “確定”也不是任何其它狀態(tài)。")]
??public string Status
??{
???get
???{
????return ((string)(curObj["Status"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsSuiteMaskNull
??{
???get
???{
????if ((curObj["SuiteMask"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description(@"SuiteMask 屬性表示一組位標志,它識別系統(tǒng)上的一套產(chǎn)品。此數(shù)字可以是下列值的組合之一:
0 - Small Business
1 - Enterprise
2 - Backoffice
3 - Communications
4 - Terminal
5 - Smallbusiness Restricted
6 - Embedded NT
7 - Data Center
8 - Singe User
9 - Personal
10 - Blade
30 - NT Work Station
31 - NT Server")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public SuiteMaskValues SuiteMask
??{
???get
???{
????if ((curObj["SuiteMask"] == null))
????{
?????return ((SuiteMaskValues)(System.Convert.ToInt32(0)));
????}
????return ((SuiteMaskValues)(Convert.ToInt32(curObj["SuiteMask"])));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("SystemDevice 屬性表示安裝了操作系統(tǒng)的物理磁盤分區(qū)。")]
??public string SystemDevice
??{
???get
???{
????return ((string)(curObj["SystemDevice"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("SystemDirectory 屬性表示操作系統(tǒng)的系統(tǒng)目錄。\n例如: C:\\WINDOWS\\SYSTEM32")]
??public string SystemDirectory
??{
???get
???{
????return ((string)(curObj["SystemDirectory"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("SystemDrive 屬性包含操作系統(tǒng)所在的磁盤驅(qū)動器字母。\n例如,C:")]
??public string SystemDrive
??{
???get
???{
????return ((string)(curObj["SystemDrive"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsTotalSwapSpaceSizeNull
??{
???get
???{
????if ((curObj["TotalSwapSpaceSize"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("總交換空間(單位為 KB)。如果交換空間跟頁面文件沒有區(qū)分開,這個值可以是 NULL (未指定的)。但是,有些操作系統(tǒng)區(qū)分這兩個概念。例如,在 UNIX 中,當自" +
??? "由頁面列表減少并長時間低于某個數(shù)量時,這個過程可以被“換”出來。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt64 TotalSwapSpaceSize
??{
???get
???{
????if ((curObj["TotalSwapSpaceSize"] == null))
????{
?????return System.Convert.ToUInt64(0);
????}
????return ((System.UInt64)(curObj["TotalSwapSpaceSize"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsTotalVirtualMemorySizeNull
??{
???get
???{
????if ((curObj["TotalVirtualMemorySize"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("虛擬內(nèi)存量(單位為 KB)。例如,這可以通過將 RAM 總量添加到頁面空間量來計算(即,計算機系統(tǒng)中的內(nèi)存量和屬性 SizeStoredInPagingFiles" +
??? " 之和) 。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt64 TotalVirtualMemorySize
??{
???get
???{
????if ((curObj["TotalVirtualMemorySize"] == null))
????{
?????return System.Convert.ToUInt64(0);
????}
????return ((System.UInt64)(curObj["TotalVirtualMemorySize"]));
???}
??}
???????
??[Browsable(false)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??public bool IsTotalVisibleMemorySizeNull
??{
???get
???{
????if ((curObj["TotalVisibleMemorySize"] == null))
????{
?????return true;
????}
????else
????{
?????return false;
????}
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("操作系統(tǒng)可用的物理內(nèi)存的全部數(shù)目(單位是千字節(jié))。該值并非需要指明真實的物理內(nèi)存數(shù)目,而是向操作系統(tǒng)通報其可用的內(nèi)存數(shù)目。")]
??[TypeConverter(typeof(WMIValueTypeConverter))]
??public System.UInt64 TotalVisibleMemorySize
??{
???get
???{
????if ((curObj["TotalVisibleMemorySize"] == null))
????{
?????return System.Convert.ToUInt64(0);
????}
????return ((System.UInt64)(curObj["TotalVisibleMemorySize"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("Version 屬性表示操作系統(tǒng)的版本。\n例如: 4.0")]
??public string Version
??{
???get
???{
????return ((string)(curObj["Version"]));
???}
??}
???????
??[Browsable(true)]
??[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
??[Description("WindowsDirectory 屬性表示操作系統(tǒng)的 Windows 目錄。\n例如: C:\\WINDOWS")]
??public string WindowsDirectory
??{
???get
???{
????return ((string)(curObj["WindowsDirectory"]));
???}
??}
???????
??private bool CheckIfProperClass(System.Management.ManagementScope mgmtScope, System.Management.ManagementPath path, System.Management.ObjectGetOptions OptionsParam)
??{
???if (((path != null)
????&& (System.String.Compare(path.ClassName, ManagementClassName, true, CultureInfo.InvariantCulture) == 0)))
???{
????return true;
???}
???else
???{
????return CheckIfProperClass(new System.Management.ManagementObject(mgmtScope, path, OptionsParam));
???}
??}
???????
??private bool CheckIfProperClass(System.Management.ManagementBaseObject theObj)
??{
???if (((theObj != null)
????&& (System.String.Compare(((string)(theObj["__CLASS"])), ManagementClassName, true, CultureInfo.InvariantCulture) == 0)))
???{
????return true;
???}
???else
???{
????System.Array parentClasses = ((System.Array)(theObj["__DERIVATION"]));
????if ((parentClasses != null))
????{
?????Int32 count = 0;
?????for (count = 0; (count < parentClasses.Length); count = (count + 1))
?????{
??????if ((System.String.Compare(((string)(parentClasses.GetValue(count))), ManagementClassName, true, CultureInfo.InvariantCulture) == 0))
??????{
???????return true;
??????}
?????}
????}
???}
???return false;
??}
???????
??private bool ShouldSerializeCurrentTimeZone()
??{
???if ((IsCurrentTimeZoneNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private void ResetCurrentTimeZone()
??{
???curObj["CurrentTimeZone"] = null;
???if (((isEmbedded == false)
????&& (AutoCommitProp == true)))
???{
????PrivateLateBoundObject.Put();
???}
??}
???????
??private bool ShouldSerializeDebug()
??{
???if ((IsDebugNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private void ResetDescription()
??{
???curObj["Description"] = null;
???if (((isEmbedded == false)
????&& (AutoCommitProp == true)))
???{
????PrivateLateBoundObject.Put();
???}
??}
???????
??private bool ShouldSerializeDistributed()
??{
???if ((IsDistributedNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeEncryptionLevel()
??{
???if ((IsEncryptionLevelNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeForegroundApplicationBoost()
??{
???if ((IsForegroundApplicationBoostNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private void ResetForegroundApplicationBoost()
??{
???curObj["ForegroundApplicationBoost"] = null;
???if (((isEmbedded == false)
????&& (AutoCommitProp == true)))
???{
????PrivateLateBoundObject.Put();
???}
??}
???????
??private bool ShouldSerializeFreePhysicalMemory()
??{
???if ((IsFreePhysicalMemoryNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeFreeSpaceInPagingFiles()
??{
???if ((IsFreeSpaceInPagingFilesNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeFreeVirtualMemory()
??{
???if ((IsFreeVirtualMemoryNull == false))
???{
????return true;
???}
???return false;
??}
???????
??// 將 DMTF 格式的給定日期時間轉(zhuǎn)換為 System.DateTime 對象。
??static System.DateTime ToDateTime(string dmtfDate)
??{
???int year = System.DateTime.MinValue.Year;
???int month = System.DateTime.MinValue.Month;
???int day = System.DateTime.MinValue.Day;
???int hour = System.DateTime.MinValue.Hour;
???int minute = System.DateTime.MinValue.Minute;
???int second = System.DateTime.MinValue.Second;
???long ticks = 0;
???string dmtf = dmtfDate;
???System.DateTime datetime = System.DateTime.MinValue;
???string tempString = System.String.Empty;
???if ((dmtf == null))
???{
????throw new System.ArgumentOutOfRangeException();
???}
???if ((dmtf.Length == 0))
???{
????throw new System.ArgumentOutOfRangeException();
???}
???if ((dmtf.Length != 25))
???{
????throw new System.ArgumentOutOfRangeException();
???}
???try
???{
????tempString = dmtf.Substring(0, 4);
????if (("****" != tempString))
????{
?????year = System.Int32.Parse(tempString);
????}
????tempString = dmtf.Substring(4, 2);
????if (("**" != tempString))
????{
?????month = System.Int32.Parse(tempString);
????}
????tempString = dmtf.Substring(6, 2);
????if (("**" != tempString))
????{
?????day = System.Int32.Parse(tempString);
????}
????tempString = dmtf.Substring(8, 2);
????if (("**" != tempString))
????{
?????hour = System.Int32.Parse(tempString);
????}
????tempString = dmtf.Substring(10, 2);
????if (("**" != tempString))
????{
?????minute = System.Int32.Parse(tempString);
????}
????tempString = dmtf.Substring(12, 2);
????if (("**" != tempString))
????{
?????second = System.Int32.Parse(tempString);
????}
????tempString = dmtf.Substring(15, 6);
????if (("******" != tempString))
????{
?????ticks = (System.Int64.Parse(tempString)
??????* (System.TimeSpan.TicksPerMillisecond / 1000));
????}
????if (((((((((year < 0)
?????|| (month < 0))
?????|| (day < 0))
?????|| (hour < 0))
?????|| (minute < 0))
?????|| (minute < 0))
?????|| (second < 0))
?????|| (ticks < 0)))
????{
?????throw new System.ArgumentOutOfRangeException();
????}
???}
???catch (System.Exception e)
???{
????e = e;
????throw new System.ArgumentOutOfRangeException();
???}
???datetime = new System.DateTime(year, month, day, hour, minute, second, 0);
???datetime = datetime.AddTicks(ticks);
???System.TimeSpan tickOffset = System.TimeZone.CurrentTimeZone.GetUtcOffset(datetime);
???int UTCOffset = 0;
???long OffsetToBeAdjusted = 0;
???long OffsetMins = (tickOffset.Ticks / System.TimeSpan.TicksPerMinute);
???tempString = dmtf.Substring(22, 3);
???if ((tempString != "***"))
???{
????tempString = dmtf.Substring(21, 4);
????try
????{
?????UTCOffset = System.Int32.Parse(tempString);
????}
????catch (System.Exception e)
????{
?????e = e;
?????throw new System.ArgumentOutOfRangeException();
????}
????OffsetToBeAdjusted = (OffsetMins - UTCOffset);
????datetime = datetime.AddMinutes(OffsetToBeAdjusted);
???}
???return datetime;
??}
???????
??// 將給定的 System.DateTime 對象轉(zhuǎn)換為 DMTF 日期時間格式。
??static string ToDmtfDateTime(System.DateTime date)
??{
???string utcString = System.String.Empty;
???System.TimeSpan tickOffset = System.TimeZone.CurrentTimeZone.GetUtcOffset(date);
???long OffsetMins = (tickOffset.Ticks / System.TimeSpan.TicksPerMinute);
???if ((System.Math.Abs(OffsetMins) > 999))
???{
????date = date.ToUniversalTime();
????utcString = "+000";
???}
???else
???{
????if ((tickOffset.Ticks >= 0))
????{
?????utcString = ("+" + ((tickOffset.Ticks / System.TimeSpan.TicksPerMinute)).ToString().PadLeft(3, '0'));
????}
????else
????{
?????string strTemp = OffsetMins.ToString();
?????utcString = ("-" + strTemp.Substring(1, (strTemp.Length - 1)).PadLeft(3, '0'));
????}
???}
???string dmtfDateTime = date.Year.ToString().PadLeft(4, '0');
???dmtfDateTime = (dmtfDateTime + date.Month.ToString().PadLeft(2, '0'));
???dmtfDateTime = (dmtfDateTime + date.Day.ToString().PadLeft(2, '0'));
???dmtfDateTime = (dmtfDateTime + date.Hour.ToString().PadLeft(2, '0'));
???dmtfDateTime = (dmtfDateTime + date.Minute.ToString().PadLeft(2, '0'));
???dmtfDateTime = (dmtfDateTime + date.Second.ToString().PadLeft(2, '0'));
???dmtfDateTime = (dmtfDateTime + ".");
???System.DateTime dtTemp = new System.DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, 0);
???long microsec = (((date.Ticks - dtTemp.Ticks)
????* 1000)
????/ System.TimeSpan.TicksPerMillisecond);
???string strMicrosec = microsec.ToString();
???if ((strMicrosec.Length > 6))
???{
????strMicrosec = strMicrosec.Substring(0, 6);
???}
???dmtfDateTime = (dmtfDateTime + strMicrosec.PadLeft(6, '0'));
???dmtfDateTime = (dmtfDateTime + utcString);
???return dmtfDateTime;
??}
???????
??private bool ShouldSerializeInstallDate()
??{
???if ((IsInstallDateNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeLargeSystemCache()
??{
???if ((IsLargeSystemCacheNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeLastBootUpTime()
??{
???if ((IsLastBootUpTimeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeLocalDateTime()
??{
???if ((IsLocalDateTimeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeMaxNumberOfProcesses()
??{
???if ((IsMaxNumberOfProcessesNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeMaxProcessMemorySize()
??{
???if ((IsMaxProcessMemorySizeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeNumberOfLicensedUsers()
??{
???if ((IsNumberOfLicensedUsersNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeNumberOfProcesses()
??{
???if ((IsNumberOfProcessesNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeNumberOfUsers()
??{
???if ((IsNumberOfUsersNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeOSLanguage()
??{
???if ((IsOSLanguageNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeOSProductSuite()
??{
???if ((IsOSProductSuiteNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeOSType()
??{
???if ((IsOSTypeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializePrimary()
??{
???if ((IsPrimaryNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeProductType()
??{
???if ((IsProductTypeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeQuantumLength()
??{
???if ((IsQuantumLengthNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private void ResetQuantumLength()
??{
???curObj["QuantumLength"] = null;
???if (((isEmbedded == false)
????&& (AutoCommitProp == true)))
???{
????PrivateLateBoundObject.Put();
???}
??}
???????
??private bool ShouldSerializeQuantumType()
??{
???if ((IsQuantumTypeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private void ResetQuantumType()
??{
???curObj["QuantumType"] = null;
???if (((isEmbedded == false)
????&& (AutoCommitProp == true)))
???{
????PrivateLateBoundObject.Put();
???}
??}
???????
??private bool ShouldSerializeServicePackMajorVersion()
??{
???if ((IsServicePackMajorVersionNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeServicePackMinorVersion()
??{
???if ((IsServicePackMinorVersionNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeSizeStoredInPagingFiles()
??{
???if ((IsSizeStoredInPagingFilesNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeSuiteMask()
??{
???if ((IsSuiteMaskNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeTotalSwapSpaceSize()
??{
???if ((IsTotalSwapSpaceSizeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeTotalVirtualMemorySize()
??{
???if ((IsTotalVirtualMemorySizeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??private bool ShouldSerializeTotalVisibleMemorySize()
??{
???if ((IsTotalVisibleMemorySizeNull == false))
???{
????return true;
???}
???return false;
??}
???????
??[Browsable(true)]
??public void CommitObject()
??{
???if ((isEmbedded == false))
???{
????PrivateLateBoundObject.Put();
???}
??}
???????
??private static string ConstructPath(string keyName)
??{
???string strPath = "ROOT\\CIMV2:Win32_OperatingSystem";
???strPath = (strPath
????+ (".Name="
????+ ("\""
????+ (keyName + "\""))));
???return strPath;
??}
???????
??// 在枚舉 WMI 類實例方面的不同重載的 GetInstances() 幫助。
??public static OperatingSystemCollection GetInstances()
??{
???return GetInstances(((System.Management.ManagementScope)(null)), ((System.Management.EnumerationOptions)(null)));
??}
???????
??public static OperatingSystemCollection GetInstances(string condition)
??{
???return GetInstances(null, condition, null);
??}
???????
??public static OperatingSystemCollection GetInstances(System.String [] selectedProperties)
??{
???return GetInstances(null, null, selectedProperties);
??}
???????
??public static OperatingSystemCollection GetInstances(string condition, System.String [] selectedProperties)
??{
???return GetInstances(null, condition, selectedProperties);
??}
???????
??public static OperatingSystemCollection GetInstances(System.Management.ManagementScope mgmtScope, System.Management.EnumerationOptions enumOptions)
??{
???if ((mgmtScope == null))
???{
????if ((statMgmtScope == null))
????{
?????mgmtScope = new System.Management.ManagementScope();
?????mgmtScope.Path.NamespacePath = "root\\CIMV2";
????}
????else
????{
?????mgmtScope = statMgmtScope;
????}
???}
???System.Management.ManagementPath pathObj = new System.Management.ManagementPath();
???pathObj.ClassName = "Win32_OperatingSystem";
???pathObj.NamespacePath = "root\\CIMV2";
???System.Management.ManagementClass clsObject = new System.Management.ManagementClass(mgmtScope, pathObj, null);
???if ((enumOptions == null))
???{
????enumOptions = new System.Management.EnumerationOptions();
????enumOptions.EnsureLocatable = true;
???}
???return new OperatingSystemCollection(clsObject.GetInstances(enumOptions));
??}
???????
??public static OperatingSystemCollection GetInstances(System.Management.ManagementScope mgmtScope, string condition)
??{
???return GetInstances(mgmtScope, condition, null);
??}
???????
??public static OperatingSystemCollection GetInstances(System.Management.ManagementScope mgmtScope, System.String [] selectedProperties)
??{
???return GetInstances(mgmtScope, null, selectedProperties);
??}
???????
??public static OperatingSystemCollection GetInstances(System.Management.ManagementScope mgmtScope, string condition, System.String [] selectedProperties)
??{
???if ((mgmtScope == null))
???{
????if ((statMgmtScope == null))
????{
?????mgmtScope = new System.Management.ManagementScope();
?????mgmtScope.Path.NamespacePath = "root\\CIMV2";
????}
????else
????{
?????mgmtScope = statMgmtScope;
????}
???}
???System.Management.ManagementObjectSearcher ObjectSearcher = new System.Management.ManagementObjectSearcher(mgmtScope, new SelectQuery("Win32_OperatingSystem", condition, selectedProperties));
???System.Management.EnumerationOptions enumOptions = new System.Management.EnumerationOptions();
???enumOptions.EnsureLocatable = true;
???ObjectSearcher.Options = enumOptions;
???return new OperatingSystemCollection(ObjectSearcher.Get());
??}
???????
??[Browsable(true)]
??public static OperatingSystem CreateInstance()
??{
???System.Management.ManagementScope mgmtScope = null;
???if ((statMgmtScope == null))
???{
????mgmtScope = new System.Management.ManagementScope();
????mgmtScope.Path.NamespacePath = CreatedWmiNamespace;
???}
???else
???{
????mgmtScope = statMgmtScope;
???}
???System.Management.ManagementPath mgmtPath = new System.Management.ManagementPath(CreatedClassName);
???return new OperatingSystem(new System.Management.ManagementClass(mgmtScope, mgmtPath, null).CreateInstance());
??}
???????
??[Browsable(true)]
??public void Delete()
??{
???PrivateLateBoundObject.Delete();
??}
???????
??public System.UInt32 Reboot()
??{
???if ((isEmbedded == false))
???{
????System.Management.ManagementBaseObject inParams = null;
????bool EnablePrivileges = PrivateLateBoundObject.Scope.Options.EnablePrivileges;
????PrivateLateBoundObject.Scope.Options.EnablePrivileges = true;
????System.Management.ManagementBaseObject outParams = PrivateLateBoundObject.InvokeMethod("Reboot", inParams, null);
????PrivateLateBoundObject.Scope.Options.EnablePrivileges = EnablePrivileges;
????return System.Convert.ToUInt32(outParams.Properties["ReturnValue"].Value);
???}
???else
???{
????return System.Convert.ToUInt32(0);
???}
??}
???????
??public System.UInt32 SetDateTime(System.DateTime LocalDateTime)
??{
???if ((isEmbedded == false))
???{
????System.Management.ManagementBaseObject inParams = null;
????bool EnablePrivileges = PrivateLateBoundObject.Scope.Options.EnablePrivileges;
????PrivateLateBoundObject.Scope.Options.EnablePrivileges = true;
????inParams = PrivateLateBoundObject.GetMethodParameters("SetDateTime");
????inParams["LocalDateTime"] = ToDmtfDateTime(((System.DateTime)(LocalDateTime)));
????System.Management.ManagementBaseObject outParams = PrivateLateBoundObject.InvokeMethod("SetDateTime", inParams, null);
????PrivateLateBoundObject.Scope.Options.EnablePrivileges = EnablePrivileges;
????return System.Convert.ToUInt32(outParams.Properties["ReturnValue"].Value);
???}
???else
???{
????return System.Convert.ToUInt32(0);
???}
??}
???????
??public System.UInt32 Shutdown()
??{
???if ((isEmbedded == false))
???{
????System.Management.ManagementBaseObject inParams = null;
????bool EnablePrivileges = PrivateLateBoundObject.Scope.Options.EnablePrivileges;
????PrivateLateBoundObject.Scope.Options.EnablePrivileges = true;
????System.Management.ManagementBaseObject outParams = PrivateLateBoundObject.InvokeMethod("Shutdown", inParams, null);
????PrivateLateBoundObject.Scope.Options.EnablePrivileges = EnablePrivileges;
????return System.Convert.ToUInt32(outParams.Properties["ReturnValue"].Value);
???}
???else
???{
????return System.Convert.ToUInt32(0);
???}
??}
???????
??public System.UInt32 Win32Shutdown(int Flags, int Reserved)
??{
???if ((isEmbedded == false))
???{
????System.Management.ManagementBaseObject inParams = null;
????bool EnablePrivileges = PrivateLateBoundObject.Scope.Options.EnablePrivileges;
????PrivateLateBoundObject.Scope.Options.EnablePrivileges = true;
????inParams = PrivateLateBoundObject.GetMethodParameters("Win32Shutdown");
????inParams["Flags"] = Flags;
????inParams["Reserved"] = Reserved;
????System.Management.ManagementBaseObject outParams = PrivateLateBoundObject.InvokeMethod("Win32Shutdown", inParams, null);
????PrivateLateBoundObject.Scope.Options.EnablePrivileges = EnablePrivileges;
????return System.Convert.ToUInt32(outParams.Properties["ReturnValue"].Value);
???}
???else
???{
????return System.Convert.ToUInt32(0);
???}
??}
???????
??public enum EncryptionLevelValues : int
??{
???????????
???Val_40_位,
???????????
???Val_128_位,
???????????
???n_位,
??}
???????
??public enum ForegroundApplicationBoostValues : int
??{
???????????
???無,
???????????
???最小,
???????????
???最大,
??}
???????
??public enum LargeSystemCacheValues : long
??{
???????????
???應用程序優(yōu)化 = 0,
???????????
???系統(tǒng)性能優(yōu)化 = 1,
??}
???????
??public enum OSProductSuiteValues : int
??{
???????????
???Small_Business = 1,
???????????
???Enterprise = 2,
???????????
???BackOffice = 4,
???????????
???通訊服務器 = 8,
???????????
???終端服務器 = 16,
???????????
???Small_Business_Restricted_ = 32,
???????????
???Embedded_NT = 64,
???????????
???Data_Center = 128,
??}
???????
??public enum OSTypeValues : int
??{
???????????
???未知,
???????????
???其他,
???????????
???MACOS,
???????????
???ATTUNIX,
???????????
???DGUX,
???????????
???DECNT,
???????????
???Digital_Unix,
???????????
???OpenVMS,
???????????
???HPUX,
???????????
???AIX,
???????????
???MVS,
???????????
???OS400,
???????????
???OS_2,
???????????
???JavaVM,
???????????
???MSDOS,
???????????
???WIN3x,
???????????
???WIN95,
???????????
???WIN98,
???????????
???WINNT,
???????????
???WINCE,
???????????
???NCR3000,
???????????
???NetWare,
???????????
???OSF,
???????????
???DC_OS,
???????????
???Reliant_UNIX,
???????????
???SCO_UnixWare,
???????????
???SCO_OpenServer,
???????????
???Sequent,
???????????
???IRIX,
???????????
???Solaris,
???????????
???SunOS,
???????????
???U6000,
???????????
???ASERIES,
???????????
???TandemNSK,
???????????
???TandemNT,
???????????
???BS2000,
???????????
???LINUX,
???????????
???Lynx,
???????????
???XENIX,
???????????
???VM_ESA,
???????????
???交互的_UNIX,
???????????
???BSDUNIX,
???????????
???FreeBSD,
???????????
???NetBSD,
???????????
???GNU_Hurd,
???????????
???OS9,
???????????
???MACH_Kernel,
???????????
???Inferno,
???????????
???QNX,
???????????
???EPOC,
???????????
???IxWorks,
???????????
???VxWorks,
???????????
???MiNT,
???????????
???BeOS,
???????????
???HP_MPE,
???????????
???NextStep,
???????????
???PalmPilot,
???????????
???Rhapsody,
???????????
???Windows_2000,
???????????
???專用的,
???????????
???OS_390,
???????????
???VSE,
???????????
???TPF,
??}
???????
??public enum ProductTypeValues : long
??{
???????????
???工作站 = 1,
???????????
???域控制器 = 2,
???????????
???服務器 = 3,
???????????
???INVALID_ENUM_VALUE = 0,
??}
???????
??public enum QuantumLengthValues : int
??{
???????????
???未知,
???????????
???單擊,
???????????
???雙擊,
??}
???????
??public enum QuantumTypeValues : int
??{
???????????
???未知,
???????????
???固定,
???????????
???變量,
??}
???????
??public enum SuiteMaskValues : int
??{
???????????
???Small_Business = 1,
???????????
???Enterprise = 2,
???????????
???BackOffice = 4,
???????????
???通訊 = 8,
???????????
???終端 = 16,
???????????
???Smallbusiness_Restricted = 32,
???????????
???Embedded_NT = 64,
???????????
???Data_Center = 128,
???????????
???單一用戶 = 256,
???????????
???Personal = 512,
???????????
???Blade = 1024,
???????????
???NT_Work_Station = 2048,
???????????
???NT_Server = 4096,
??}
???????
??// 枚舉該類實例的枚舉數(shù)實現(xiàn)。
??public class OperatingSystemCollection : object, ICollection
??{
???????????
???private ManagementObjectCollection ObjectCollection;
???????????
???public OperatingSystemCollection(ManagementObjectCollection objCollection)
???{
????ObjectCollection = objCollection;
???}
???????????
???public int Count
???{
????get
????{
?????return ObjectCollection.Count;
????}
???}
???????????
???public bool IsSynchronized
???{
????get
????{
?????return ObjectCollection.IsSynchronized;
????}
???}
???????????
???public object SyncRoot
???{
????get
????{
?????return this;
????}
???}
???????????
???public void CopyTo(System.Array array, int index)
???{
????ObjectCollection.CopyTo(array, index);
????int nCtr;
????for (nCtr = 0; (nCtr < array.Length); nCtr = (nCtr + 1))
????{
?????array.SetValue(new OperatingSystem(((System.Management.ManagementObject)(array.GetValue(nCtr)))), nCtr);
????}
???}
???????????
???public System.Collections.IEnumerator GetEnumerator()
???{
????return new OperatingSystemEnumerator(ObjectCollection.GetEnumerator());
???}
???????????
???public class OperatingSystemEnumerator : object, System.Collections.IEnumerator
???{
???????????????
????private ManagementObjectCollection.ManagementObjectEnumerator ObjectEnumerator;
???????????????
????public OperatingSystemEnumerator(ManagementObjectCollection.ManagementObjectEnumerator objEnum)
????{
?????ObjectEnumerator = objEnum;
????}
???????????????
????public object Current
????{
?????get
?????{
??????return new OperatingSystem(((System.Management.ManagementObject)(ObjectEnumerator.Current)));
?????}
????}
???????????????
????public bool MoveNext()
????{
?????return ObjectEnumerator.MoveNext();
????}
???????????????
????public void Reset()
????{
?????ObjectEnumerator.Reset();
????}
???}
??}
???????
??// 處理 ValueType 屬性的空值的 TypeConverter
??public class WMIValueTypeConverter : TypeConverter
??{
???????????
???private TypeConverter baseConverter;
???????????
???public WMIValueTypeConverter(System.Type baseType)
???{
????baseConverter = TypeDescriptor.GetConverter(baseType);
???}
???????????
???public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type srcType)
???{
????return baseConverter.CanConvertFrom(context, srcType);
???}
???????????
???public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType)
???{
????return baseConverter.CanConvertTo(context, destinationType);
???}
???????????
???public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
???{
????return baseConverter.ConvertFrom(context, culture, value);
???}
???????????
???public override object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary dictionary)
???{
????return baseConverter.CreateInstance(context, dictionary);
???}
???????????
???public override bool GetCreateInstanceSupported(System.ComponentModel.ITypeDescriptorContext context)
???{
????return baseConverter.GetCreateInstanceSupported(context);
???}
???????????
???public override PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributeVar)
???{
????return baseConverter.GetProperties(context, value, attributeVar);
???}
???????????
???public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context)
???{
????return baseConverter.GetPropertiesSupported(context);
???}
???????????
???public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context)
???{
????return baseConverter.GetStandardValues(context);
???}
???????????
???public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context)
???{
????return baseConverter.GetStandardValuesExclusive(context);
???}
???????????
???public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context)
???{
????return baseConverter.GetStandardValuesSupported(context);
???}
???????????
???public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType)
???{
????if ((context != null))
????{
?????if ((context.PropertyDescriptor.ShouldSerializeValue(context.Instance) == false))
?????{
??????return "";
?????}
????}
????return baseConverter.ConvertTo(context, culture, value, destinationType);
???}
??}
???????
??// 表示 WMI 系統(tǒng)屬性的嵌入類。
??[TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
???public class ManagementSystemProperties
??{
???????????
???private System.Management.ManagementBaseObject PrivateLateBoundObject;
???????????
???public ManagementSystemProperties(System.Management.ManagementBaseObject ManagedObject)
???{
????PrivateLateBoundObject = ManagedObject;
???}
???????????
???[Browsable(true)]
???public int GENUS
???{
????get
????{
?????return ((int)(PrivateLateBoundObject["__GENUS"]));
????}
???}
???????????
???[Browsable(true)]
???public string CLASS
???{
????get
????{
?????return ((string)(PrivateLateBoundObject["__CLASS"]));
????}
???}
???????????
???[Browsable(true)]
???public string SUPERCLASS
???{
????get
????{
?????return ((string)(PrivateLateBoundObject["__SUPERCLASS"]));
????}
???}
???????????
???[Browsable(true)]
???public string DYNASTY
???{
????get
????{
?????return ((string)(PrivateLateBoundObject["__DYNASTY"]));
????}
???}
???????????
???[Browsable(true)]
???public string RELPATH
???{
????get
????{
?????return ((string)(PrivateLateBoundObject["__RELPATH"]));
????}
???}
???????????
???[Browsable(true)]
???public int PROPERTY_COUNT
???{
????get
????{
?????return ((int)(PrivateLateBoundObject["__PROPERTY_COUNT"]));
????}
???}
???????????
???[Browsable(true)]
???public string[] DERIVATION
???{
????get
????{
?????return ((string[])(PrivateLateBoundObject["__DERIVATION"]));
????}
???}
???????????
???[Browsable(true)]
???public string SERVER
???{
????get
????{
?????return ((string)(PrivateLateBoundObject["__SERVER"]));
????}
???}
???????????
???[Browsable(true)]
???public string NAMESPACE
???{
????get
????{
?????return ((string)(PrivateLateBoundObject["__NAMESPACE"]));
????}
???}
???????????
???[Browsable(true)]
???public string PATH
???{
????get
????{
?????return ((string)(PrivateLateBoundObject["__PATH"]));
????}
???}
??}
?}
轉(zhuǎn)載于:https://www.cnblogs.com/zhangjjwm/archive/2006/05/25/409008.html
總結(jié)
以上是生活随笔為你收集整理的用WMI获取远程机器操作系统的详细信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp程序错误详细说明例表
- 下一篇: 昨天服务器出现问题,解决过程如下所述