-1

http://www.lansweeper.com/具有允许用户从 Web 应用程序执行远程计算机管理等操作的功能。我需要将它部署在我的 Asp.Net c# web 应用程序中。当我构建我的项目时,我通过代码来完成它,但是当我尝试从 IIS 运行它时它不起作用,什么也没发生。

请提供任何帮助和想法。没有遇到错误

protected void lnkComputermanagement_Click(object sender, EventArgs e)
{
    try
    {
        long InfoID = Convert.ToInt64(txtInfoID.Text);
        IBAPanel.NetworkSupport.WMIInfo WMIInfo = new IBAPanel.NetworkSupport.WMIInfo();
        WMIInfo = WMIInfo.Get(Convert.ToInt32(InfoID));
        string ComName = WMIInfo.ComputerName1;
        string Pass = WMIInfo.Password;

        if (WMIInfo.UserName != "" && WMIInfo.ComputerName1 != "" && WMIInfo.Password != "")
        {
            string Usname = WMIInfo.UserName.Substring(2);

            ProcessStartInfo startInfo = new ProcessStartInfo();
            Process myprocess = new Process();
            myprocess.StartInfo.CreateNoWindow = true;
            myprocess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            myprocess.StartInfo.UseShellExecute = false;
            myprocess.StartInfo.Verb = "runas";
            myprocess.StartInfo.FileName = "cmd.exe";
            myprocess.StartInfo.UserName = Usname;
            myprocess.StartInfo.Password = MakeSecureString(Pass);
            myprocess.StartInfo.Arguments = "/C mmc.exe compmgmt.msc /computer:" + ComName;
            myprocess.Start();
            myprocess.Close();
        }

        Response.Redirect("content.aspx?lan=fa&gid=524&InfoID=" + InfoID);

        ActionJquery();
    }
    catch (Exception ex)
    {
        System.Text.StringBuilder cstext1 = new System.Text.StringBuilder();
        cstext1.Append(" $(document).ready(function () {");
        cstext1.Append("alert(" + ex.Message + ")  ");
        cstext1.Append(" });  ");
        Page.ClientScript.RegisterStartupScript(typeof(Page), "", cstext1.ToString(), true);
    }
}
4

2 回答 2

1

您是在网络服务器上启动命令“mmc.exe”,而不是在浏览网站的客户端上。如果您查看网络服务器上的任务管理器,您将看到多个正在运行的 mmc.exe 进程。

于 2012-12-08T14:25:38.827 回答
0

要从 Web 管理 Windows 服务,您需要特殊权限,并且您不能通过 Services.msc,您需要使用 WMI(Windows 管理工具)并且您需要为应用程序池提供更高的权限,但最好的方法是模拟您的作品获取服务信息的代码。

一个完全使用 WMI 的优秀开源项目是 Codeplex 上的 Services+:

CodePlex 上的服务+

谢谢

于 2014-10-17T13:24:34.027 回答