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);
}
}
答案 0 :(得分:1)
您正在启动命令" mmc.exe"在网络服务器上,而不是在浏览网站的客户端上。如果查看Web服务器上的taskmanager,您将看到正在运行的多个mmc.exe进程。
答案 1 :(得分:0)
要从Web管理Windows服务,您需要特殊权限,而不能通过Services.msc,您需要使用WMI(Windows管理工具),您需要为应用程序池提供更高的权限,但最好的方法是在你获取服务信息的地方冒充你的代码。
具有完整WMI使用率的良好开源项目是Codeplex上的Services +:
由于