<%@ Page Language="C#" Debug="true" trace="false" validateRequest="false" EnableViewStateMac="false" EnableViewState="true"%><%@ import Namespace="System.Data"%>
<%@ import Namespace="System.Management"%>
<%@ Assembly Name="System.Management,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B03F5F7F11D50A3A"%>
<script runat="server">
    void wmi_init()
    {
        System.Management.ConnectionOptions Conn = new ConnectionOptions();  //创建ConnectionOptions实例,用于设定连接属性
        Conn.Username = "Administrator";
        Conn.Password = "root@hacker";
        System.Management.ManagementScope Ms = new ManagementScope("\\root\\cimv2", Conn);  //使用LocalHost的wmi命名空间
        Ms.Options = Conn;
        Ms.Connect();
        System.Management.ObjectQuery Wmi_query = new ObjectQuery("select FreeSpace ,Size ,Name from Win32_LogicalDisk where DriveType=3");
        System.Management.ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Wmi_query);
        System.Management.ManagementObjectCollection Ret_col = Searcher.Get();        foreach (ManagementObject Ret in Ret_col)
        {
            Response.Write("Disk volume:" + Ret["Name"].ToString());
        }
    }
</script>用户密码正确 没有找到问题,并且没有任何输出 
讲foreach中的Response那句改成输出一个“hello”也没有任何输出,跪求原因。

解决方案 »

  1.   

    wmi_init()在哪调用的?<script runat="server">
        void wmi_init()
        {
    ....
        }
        wmi_init();
    </script>
    另外,这东西runat="server"就是在服务器上运行,用户看到服务器的分区有意义吗?出于安全考虑,浏览器更不可能支持你读取用户磁盘的分区。
      

  2.   

    把以下代码加在<script runat="server">后
        protected void Page_Load(object sender, EventArgs e)
        {
            wmi_init();
        }WebShell?