Горячий, чтобы получить статус службы Windows в ASP / .net? - PullRequest
3 голосов
/ 29 января 2009

Мне нужно найти способ контролировать состояние списка служб Windows по HTTP, желательно без какой-либо сторонней программы).

Все, что мне действительно нужно, это отображать имя службы и ее статус («Запущено» / «Остановлено»).

Я не программист ASP, так что это немного за пределами моей сферы. Я искал и пока не смог найти много.

Любая помощь или предложения приветствуются.

Ответы [ 3 ]

4 голосов
/ 29 января 2009

Мне кажется, что вы хотите перечислить услуги на компьютере REMOTE . Это можно сделать с помощью WMI (инструментарий управления Windows), вот как:

ConnectionOptions connection = new ConnectionOptions();
connection.Username = userNameBox.Text;
connection.Password = passwordBox.Text;
connection.Authority = "ntlmdomain:DOMAIN";

ManagementScope scope = new ManagementScope("\\\\FullComputerName\\root\\CIMV2", connection);
scope.Connect();

ObjectQuery query= new ObjectQuery("SELECT * FROM Win32_Service"); 

ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher(scope, query);

foreach (ManagementObject queryObj in searcher.Get())
{
     Console.WriteLine("-----------------------------------");
     Console.WriteLine("Win32_Service instance");
     Console.WriteLine("-----------------------------------");
     Console.WriteLine("Caption: {0}", queryObj["Caption"]);
     Console.WriteLine("Description: {0}", queryObj["Description"]);
     Console.WriteLine("Name: {0}", queryObj["Name"]);
     Console.WriteLine("PathName: {0}", queryObj["PathName"]);
     Console.WriteLine("State: {0}", queryObj["State"]);
     Console.WriteLine("Status: {0}", queryObj["Status"]);
}

Этот код взят прямо из здесь , Happy Coding!

4 голосов
/ 29 января 2009
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ServiceProcess;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {



        ServiceController[] services = ServiceController.GetServices();

        Response.Write("List of running services : <BR>");
        foreach (ServiceController service in services)
        {


            Response.Write(string.Format(" Service Name: {0} , status {1} <BR>", service.ServiceName, service.Status.ToString()));



        }
    }
}

просто не забудьте добавить ссылку system.serviceprocess

0 голосов
/ 04 января 2013
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "sc query service_name";
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...