ASP.NET网页编程之Visual C#顶用WMI编写收集使用程序
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。visual|程序|收集 WMI是WindowsManagementInstrumentation的简称,即:视窗办理标准。在Windows2000或今后的版本中均安装得有,NT4.0则必要安装WMI的中心组件。经由过程WMI能够猎取远程盘算机的各类数据信息,把持远程盘算机的各类举动,而这就像操纵当地机一样便利、复杂。一.WMI简介
WMI从基本上说应当为一种服务,而且关于当地分歧的用户,WMI一切的权限也纷歧样。盘算机超等用户能够为盘算机中的每个用户,设定分歧的WMI权限。在默许形态下,超等用户具有WMI的统统权限。供应WMI服务是经由过程程序"WinMgmt.exe"来完成的。能够从"System32Wbem"目次中找到这个文件。
既然是服务,盘算机利用者就能够享用这类服务,一样也能够封闭这类服务。详细的操纵是:按按次翻开【把持面板】|【办理工具】|【组件服务】。WMI服务在组件服务中的显现称号为"WindowsManagementInstrumentation"。详细以下图01所示:
图01:组件服务窗口
选中【称号】栏中"WindowsManagementInstrumentation",点击鼠标右键,在弹出的菜单中,选择【属性】,在【启动范例】选择框当选择"已禁用",然后在单击【中断】按钮,如许当地的WMI服务也就被封闭了。此时一切当地和远程的WMI挪用均为不法。下图为封闭WMI服务后的界面:
封闭WMI服务
盘算机的超等用户在默许形态下具有WMI的统统权限,而且能够为当地其他用户设置WMI权限。详细操纵是,按按次翻开:【把持面板】|【办理工具】|【盘算机办理】。选中【盘算机办理】右侧的【服务和使用程序】中的【WMI控件】。详细如图02所示:
图02:【盘算机办理】对话框
点击鼠标右键,在弹出的菜单中,选择【属性】。弹出【WMI控件属性】对话框中,选择【平安】页面。详细如图03所示:
图03:翻开WMI平安设置界面
单击-4中【平安设置】按钮,弹出【平安设置Root】对话框,经由过程个中的【增加】和【删除】按钮,能够设定当地有哪些用户具有WMI权限,并经由过程【权限】选择栏为每个用户设置分歧的权限,详细如图04所示:
图04:设定当地用户的WMI权限
经由过程上图,也能够发明盘算机超等用户在默许形态的WMI权限都是同意的,而且这些权限都是没法删除的。
<P> 二.VisualC#中操纵WMI的类库简介
.NetFrameWorkSDK对WMI供应了周全的撑持,.NetFrameWorkSDK为VisualC#可以操纵WMI供应了一个专门的定名空间"System.Management"。在定名空间"System.Management"中供应了大批用以处置和WMI相干的类、接口和列举。
定名空间"System.Management"中的成员长短常庞大的,因为篇幅所限完整先容这些成员是不成能的,也是没有要的。依据我的履历,以为要懂得、把握在VisualC#中利用WMI,上面六个类应当是进修的重点,分离是ConnectionOptions、ManagementScope、ObjectQuery、ManagementObjectSearcher、ManagementObjectCollection和ManagementObject。上面就复杂先容一下六个类:
・ConnectionOptions类
ConnectionOptions类次要的功效是为创建的WMI毗连供应所需的一切设置。在使用WMI对远程盘算机举行操纵的时分,起首要举行WMI毗连,WMI毗连次要是利用的是ManagementScope类,乐成完成WMI毗连就要供应远程盘算机WMI用户名和口令。ConnectionOptions类能够经由过程其属性来供应这些信息。表01是ConnectionOptions类的一些次要属性及其复杂的申明。
属性申明Authority猎取或设置将用于考证指定用户的权力。Locale猎取或设置将用于毗连操纵的地区设置。Password供应用于WMI毗连操纵的口令。Username供应用于WMI毗连操纵的用户名。 表01:ConnectionOptions类经常使用属性及其申明
个中最经常使用的属性是Password和Username。
・ManagementScope类
经由过程ManagementScope类可以创建和远程盘算机(大概当地盘算机)的WMI毗连,暗示办理可操纵局限。创立WMI毗连能够经由过程二种办法:
(1).使用机关函数,当利用上面机关函数初始化ManagementScope类实例,同时也就创建了WMI毗连,详细以下:
publicManagementScope(
stringpath,
ConnectionOptionsoptions
);
参数:
pathManagementScope的服务器和定名空间。
options包括有干系接的选项的ConnectionOptions。
利用机关函数是有风险的,由于假如不克不及依据供应的选项创建WMI毗连,程序会程序非常,呈现毛病。
以下代码是使用此机关函数构建创建ManagementScope实例,并创建于远程盘算机majinhu的WMI毗连:
System.Management.ConnectionOptionsConn=newConnectionOptions();
//设定用于WMI毗连操纵的用户名
Conn.Username="WMI用户名";
//设定用户的口令
Conn.Password="此用户名对应口令";
System.Management.ManagementScopeMs=newManagementScope("majinhuootcimv2",Conn);
(2).使用ManagementScope中供应的Connect办法:
ManagementScope中的成员长短常少的,最经常使用的办法和属性各一个:经常使用属性是Options,次要为WMI创建供应参数;经常使用办法是Connect,经由过程它能够创建于远程盘算机的WMI毗连。以下是使用Connect办法创建WMI毗连的详细代码:
System.Management.ConnectionOptionsConn=newConnectionOptions();
//设定用于WMI毗连操纵的用户名
Conn.Username="WMI用户名";
//设定用户的口令
Conn.Password="此用户名对应口令";
System.Management.ManagementScopeMs=newManagementScope("majinhuootcimv2");
Ms.Options=Conn;
Ms.Connect();
//创建WMI毗连
・ObjectQuery类
ObjectQuery类或其派生类用于在ManagementObjectSearcher中指定查询。程序中一样平常接纳查询字符串来机关ObjectQuery实例。个中的查询字符串是一品种似SQL言语的WQL言语。上面的ObjectQuery类机关函数中最多见的一种,详细语法以下:
publicObjectQuery(
stringquery
);
参数:
query查询的字符串
・ManagementObjectSearcher类
ManagementObjectSearcher次要是依据指定的查询检索WMI工具的汇合。ManagementObjectSearcher构成成员也十分复杂,其办法Get办法长短常主要的,ManagementObjectSearcher经由过程Get办法举行WMI查询,并把失掉的了局汇合。Get办法的前往值是一个ManagementObjectCollection实例,它包括婚配指定查询的工具。
表02是其ManagementObjectSearcher类的经常使用属性及其申明。
属性申明Options有关怎样搜刮工具的选项Query在搜刮器中挪用的查询Scope在个中查找工具的局限 表02:ManagementObjectSearcher类经常使用属性及其申明
・ManagementObjectCollection类
ManagementObjectCollection类十分复杂,它次要暗示WMI实例的分歧汇合个中包含定名空间、局限和查询察看程序等。创立ManagementObjectCollection类没有机关函数。
・ManagementObject类
ManagementObject类为单个办理工具或类。经由过程ManagementObject中的办法能够挪用ManagementObject对应的工具,从而实行响应的操纵。ManagementObject类是一个内容丰厚的类,表03和表04分离是其经常使用的属性和办法。
属性申明ClassPath工具的类的路径。Options检索工具时要利用的其他信息。Path工具的WMI路径。Scope此工具在个中驻留的局限。 表03:ManagementObject类经常使用属性及其申明
办法申明Clone创立工具的一个正本。CopyTo将工具复制到另外一个地位。Delete删除工具。Get绑定到办理工具。GetRelated猎取与该工具(接洽工具)相干的工具的汇合。GetRelationships猎取该工具的联系关系的汇合。InvokeMethod挪用对应的工具办法。Put提交对工具所做的变动。 表04:ManagementObject类经常使用办法及其申明
上面就分离二个详细的示例来先容VisualC#中使用上述类,供应WMI把握怎样使用WMI编写收集使用程序,所利用的类库次要是利用了下面吸收的这六个类。在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
页:
[1]