
1.如何用WMI获得指定磁盘的容量 #region1.如何用WMI获得指定磁盘的容量

privatestringDriveType(stringtype)


...{

stringrtntype="";

switch(type)


...{

case"1":

rtntype="NotType";

break;

case"2":

rtntype="Floppydisk";

break;

case"3":

rtntype="Harddisk";

break;

case"4":

rtntype="Removabledriveornetworkdrive";

break;

case"5":

rtntype="CD-ROM";

break;

case"6":

rtntype="RAMdisk";

break;

default:

break;

}

returnrtntype;

}

privatevoidButton1_Click(objectsender,System.EventArgse)


...{

SelectQueryquery=newSelectQuery("Select*FromWin32_LogicalDisk");

ManagementObjectSearchersearcher=newManagementObjectSearcher(query);

foreach(ManagementBaseObjectdiskinsearcher.Get())


...{

Response.Write(disk["Name"]+""+DriveType(disk["DriveType"].ToString())+""+disk["VolumeName"]+"
");

}

}

#endregion

2.如何用WMI获得指定磁盘的容量 #region2.如何用WMI获得指定磁盘的容量

privatevoidButton2_Click(objectsender,System.EventArgse)


...{

ManagementObjectdisk=newManagementObject("win32_logicaldisk.deviceid="c:"");

disk.Get();

Response.Write("LogicalDiskSize="+disk["Size"]+"bytes");

}

#endregion

3.如何列出机器中所有的共享资源 #region3.如何列出机器中所有的共享资源

privatevoidButton3_Click(objectsender,System.EventArgse)


...{

ManagementObjectSearchersearcher=newManagementObjectSearcher("SELECT*FROMWin32_share");

foreach(ManagementObjectshareinsearcher.Get())


...{

Response.Write(share.GetText(TextFormat.Mof));

}

}

#endregion

4.怎样写程控制让系统中的某个文件夹共享或取消共享 #region4.怎样写程控制让系统中的某个文件夹共享或取消共享

privatevoidButton4_Click(objectsender,System.EventArgse)


...{


/**//*首先,这需要以有相应权限的用户登录系统才行

将

object[]obj={"C:/Temp","我的共享",0,10,"DotNet实现的共享",""};

改为

object[]obj={"C:/Temp","我的共享",0,null,"DotNet实现的共享",""};

就可以实现授权给最多用户了。

*/

ManagementClass_class=newManagementClass(newManagementPath("Win32_Share"));


object[]obj=...{"C:/Temp","我的共享",0,10,"DotNet实现的共享",""};

_class.InvokeMethod("create",obj);

}

#endregion

5.如何获得系统服务的运行状态 #region5.如何获得系统服务的运行状态

privatevoidButton5_Click(objectsender,System.EventArgse)


...{

string[]lvData=newstring[4];

ManagementObjectSearchersearcher=newManagementObjectSearcher("SELECT*FROMWin32_Service");

foreach(ManagementObjectmoinsearcher.Get())


...{

lvData[0]=mo["Name"].ToString();

lvData[1]=mo["StartMode"].ToString();

if(mo["Started"].Equals(true))

lvData[2]="Started";

else

lvData[2]="Stop";

lvData[3]=mo["StartName"].ToString();

Response.Write(lvData[0]+lvData[1]+lvData[2]+lvData[3]);

}

}

#endregion

6.通过WMI修改IP,而实现不用重新启动 #region6.通过WMI修改IP,而实现不用重新启动

privatevoidButton6_Click(objectsender,System.EventArgse)


...{

ReportIP();

//SwitchToDHCP();

SwitchToprivate();

Thread.Sleep(5000);

ReportIP();

Response.Write("end.");

}

privatevoidSwitchToDHCP()


...{

ManagementBaseObjectinPar=null;

ManagementBaseObjectoutPar=null;

ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollectionmoc=mc.GetInstances();

foreach(ManagementObjectmoinmoc)


...{

if(!(bool)mo["IPEnabled"])

continue;

inPar=mo.GetMethodParameters("EnableDHCP");

outPar=mo.InvokeMethod("EnableDHCP",inPar,null);

break;

}

}

privatevoidSwitchToprivate()


...{

ManagementBaseObjectinPar=null;

ManagementBaseObjectoutPar=null;

ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollectionmoc=mc.GetInstances();

foreach(ManagementObjectmoinmoc)


...{

if(!(bool)mo["IPEnabled"])

continue;

inPar=mo.GetMethodParameters("Enableprivate");


inPar["IPAddress"]=newstring[]...{"192.168.1.1"};


inPar["SubnetMask"]=newstring[]...{"255.255.255.0"};

outPar=mo.InvokeMethod("Enableprivate",inPar,null);

break;

}

}

privatevoidReportIP()


...{

Response.Write("******CurrentIPaddresses:");

ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollectionmoc=mc.GetInstances();

foreach(ManagementObjectmoinmoc)


...{

if(!(bool)mo["IPEnabled"])

continue;

stringstr="{0} SVC:'{1}'MAC:[{2}]";

str=string.Format(mo["Caption"].ToString(),mo["ServiceName"].ToString(),mo["MACAddress"].ToString());

Response.Write(str);

string[]addresses=(string[])mo["IPAddress"];

string[]subnets=(string[])mo["IPSubnet"];

Response.Write("Addresses:");

foreach(stringsadinaddresses)

Response.Write(sad+"
");

Response.Write("Subnets:");

foreach(stringsubinsubnets)

Response.Write(sub+"
");

}

}

#endregion

7.如何利用WMI远程重启远程计算机 #region7.如何利用WMI远程重启远程计算机

privatevoidButton7_Click(objectsender,System.EventArgse)


...{

Response.Write("ComputerdetailsretrievedusingWindowsManagementInstrumentation(WMI)");

Response.Write("mailto:singlepine@hotmail.com");

Response.Write("=========================================================================");

//连接远程计算机

ConnectionOptionsco=newConnectionOptions();

co.Username="john";

co.Password="john";

System.Management.ManagementScopems=newSystem.Management.ManagementScope("//192.168.1.2/root/cimv2",co);

//查询远程计算机

System.Management.ObjectQueryoq=newSystem.Management.ObjectQuery("SELECT*FROMWin32_OperatingSystem");

ManagementObjectSearcherquery1=newManagementObjectSearcher(ms,oq);

ManagementObjectCollectionqueryCollection1=query1.Get();

foreach(ManagementObjectmoinqueryCollection1)


...{


string[]ss=...{""};

mo.InvokeMethod("Reboot",ss);

Response.Write(mo.ToString());

}

}

#endregion

8.利用WMI创建一个新的进程 #region8.利用WMI创建一个新的进程

privatevoidButton8_Click(objectsender,System.EventArgse)


...{

//Gettheobjectonwhichthemethodwillbeinvoked

ManagementClassprocessClass=newManagementClass("Win32_Process");

//Getaninputparametersobjectforthismethod

ManagementBaseObjectinParams=processClass.GetMethodParameters("Create");

//Fillininputparametervalues

inParams["CommandLine"]="calc.exe";

//Executethemethod

ManagementBaseObjectoutParams=processClass.InvokeMethod("Create",inParams,null);

//Displayresults

//Note:Thereturncodeofthemethodisprovidedinthe"returnvalue"propertyoftheoutParamsobject

Response.Write("Creationofcalculatorprocessreturned:"+outParams["returnvalue"]);

Response.Write("ProcessID:"+outParams["processId"]);

}

#endregion

9.如何通过WMI终止一个进程 #region9.如何通过WMI终止一个进程

privatevoidButton9_Click(objectsender,System.EventArgse)


...{

ManagementObjectservice=

newManagementObject("win32_service="winmgmt"");

InvokeMethodOptionsoptions=newInvokeMethodOptions();

options.Timeout=newTimeSpan(0,0,0,5);

ManagementBaseObjectoutParams=service.InvokeMethod("StopService",null,options);

Response.Write("ReturnStatus="+outParams["Returnvalue"]);

}

#endregion

10.如何用WMI来获取远程机器的目录以及文件 #region10.如何用WMI来获取远程机器的目录以及文件

privatevoidButton10_Click(objectsender,System.EventArgse)


...{

ManagementObjectdisk=newManagementObject(

"win32_logicaldisk.deviceid="c:"");

disk.Get();

Response.Write("LogicalDiskSize="+disk["Size"]+"bytes");

}

#endregion

11.网卡的MAC地址 #region11.网卡的MAC地址

privatevoidButton11_Click(objectsender,System.EventArgse)


...{

ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollectionmoc=mc.GetInstances();

foreach(ManagementObjectmoinmoc)


...{

if((bool)mo["IPEnabled"]==true)

Response.Write("MACaddress"+mo["MacAddress"].ToString()+"
");

mo.Dispose();

}

}

#endregion

12.CPU的系列号 #region12.CPU的系列号

privatevoidButton12_Click(objectsender,System.EventArgse)


...{

stringcpuInfo="";//cpu序列号

ManagementClasscimobject=newManagementClass("Win32_Processor");

ManagementObjectCollectionmoc=cimobject.GetInstances();

foreach(ManagementObjectmoinmoc)


...{

cpuInfo=mo.Properties["ProcessorId"].Value.ToString();

Response.Write(cpuInfo);

}

}

#endregion

13.主板的系列号 #region13.主板的系列号

privatevoidButton13_Click(objectsender,System.EventArgse)


...{

ManagementObjectSearchersearcher=newManagementObjectSearcher("SELECT*FROMWin32_BaseBoard");

foreach(ManagementObjectshareinsearcher.Get())


...{

Response.Write("主板制造商:"+share["Manufacturer"].ToString());

Response.Write("型号:"+share["Product"].ToString());

Response.Write("序列号:"+share["SerialNumber"].ToString());

}

}

#endregion

14.获取硬盘ID #region14.获取硬盘ID

privatevoidButton14_Click(objectsender,System.EventArgse)


...{

StringHDid;

ManagementClasscimobject=newManagementClass("Win32_DiskDrive");

ManagementObjectCollectionmoc=cimobject.GetInstances();

foreach(ManagementObjectmoinmoc)


...{

HDid=(string)mo.Properties["Model"].Value;

Response.Write(HDid);

}

}

#endregion

15.获取本机的用户列表 #region15.获取本机的用户列表

privatevoidButton15_Click(objectsender,System.EventArgse)


...{

SelectQueryquery=newSelectQuery("SELECT*FROMWin32_UserAccount");

ManagementObjectSearchersearcher=newManagementObjectSearcher(query);

foreach(ManagementObjectosinsearcher.Get())


...{

Response.Write(os["Name"]);

}

}

#endregion

}