在网页中显示正在运行的服务

本文关键字:服务 运行 显示 网页 | 更新日期: 2023-09-27 18:07:10

我需要能够从服务器上抓取服务,并将其显示在网页上供测试人员检查,而不是让他们登录到远程服务器,打开服务并检查特定的服务。

我已经研究了一堆在命令行中使用任务列表,sc查询,甚至powershell中的get服务的方法。

我想做的是点击远程服务器并在网页中显示正在运行的服务。有可能从c#页面做到这一点吗?

在网页中显示正在运行的服务

我相信你要找的是ServiceController.GetServices():

http://msdn.microsoft.com/en-us/library/hde9d63a.aspx

这将允许您获得机器上所有服务的列表。这里有一个重载也接受一个机器名:http://msdn.microsoft.com/en-us/library/s21fd6th.aspx

你可以在WMI的帮助下做到这一点,你可以使用System.Management命名空间,并通过浏览Win32_Service类尝试使用以下代码:

DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("InstallDate");
dt.Columns.Add("State");
dt.Columns.Add("ServiceType");
try
{
    ManagementObjectSearcher searcher =
        new ManagementObjectSearcher("root''CIMV2",
        "SELECT * FROM Win32_Service");
    foreach (ManagementObject queryObj in searcher.Get())
    {
        DataRow dr = dt.NewRow();               
        dr["Name"] = queryObj["Name"];
        dr["InstallDate"] = queryObj["InstallDate"];
        dr["ServiceType"] = queryObj["ServiceType"];
        dr["State"] = queryObj["State"];
        dt.Rows.Add(dr);
    }
    GridView1.DataSource = dt;
    GridView1.DataBind();
}
catch (ManagementException ex)
{
    //"An error occurred while querying for WMI data: " + e.Message;
}