首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 程式化管理進程:遠端列出與終止進程實作

     編輯:關於ASP.NET

透過 System.Diagnostics.Process 類別,ASP.NET 頁面可列出伺服器所有執行中進程並終止指定進程。需部署於具備 Administrator 權限的虛擬目錄,謹慎使用以免誤殺關鍵系統進程。

完整實作程式碼

<%@ Page Language="c#" %>
<%@ Import namespace="System.Diagnostics" %>
<script language="C#" runat="server">
    void Page_Load(Object Sender, EventArgs e)
    {
        btnKill.Attributes.Add("onclick", "return confirm('確定要終止此進程嗎?');");
    }

    private void KillProcess(string processName)
    {
        try
        {
            foreach (Process proc in Process.GetProcessesByName(processName))
            {
                if (!proc.CloseMainWindow())  // 先嘗試優雅關閉
                    proc.Kill();              // 強制終止
            }
            msg.Text = processName + " 已終止。";
        }
        catch (Exception ex)
        {
            msg.Text = "終止 " + processName + " 失敗:" + ex.Message;
        }
    }

    public void btnKill_Click(object sender, EventArgs e)
    {
        KillProcess(procname.SelectedItem.Text);
    }

    public void btnShow_Click(object sender, EventArgs e)
    {
        ArrayList list = new ArrayList();
        foreach (Process p in Process.GetProcesses())
        {
            string name = p.ProcessName;  // 直接取 ProcessName 屬性
            list.Add(name);
        }
        procname.DataSource = list;
        procname.DataBind();
    }
</script>
<html><body>
<form id="frmProc" runat="server">
  <asp:DropDownList id="procname" runat="server" />
  <asp:Button id="btnKill" Text="終止進程" OnClick="btnKill_Click" runat="server" />
  <asp:Button id="btnShow" Text="列出所有進程" OnClick="btnShow_Click" runat="server" />
  <asp:Label id="msg" runat="server" />
</form>
</body></html>

關鍵技術點

  • Process.GetProcesses() 取得所有進程,GetProcessesByName() 依名稱篩選
  • CloseMainWindow() 發送關閉訊息給視窗應用程式,比 Kill() 更安全
  • 下拉清單綁定進程名稱,使用者選擇後點擊終止
  • JavaScript confirm 防止誤操作

安全性警示

  • 必須在具備管理員權限的應用程式集區身分下執行(極不建議)
  • 生產環境嚴禁部署此類頁面,應改用 Windows 管理工具(Task Manager、PowerShell、SCCM)
  • 若需程式化管理,建議開發 Windows Service 或 PowerShell Remoting 方案,配合 RBAC 權限控制
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved