WMI Stop Service (Остановка службы с помощью WMI)


public int stopService()
{
    int ret;
    #region Code to Stop the service
             
    ConnectionOptions co = new ConnectionOptions();
    co.Username = textEdit1.Text; //Логин для подключения
    co.Password = textEdit2.Text; //Пароль для подключения
    co.EnablePrivileges = true;
    co.Impersonation = ImpersonationLevel.Impersonate; 
 
    //Проверка куда вы устанавливаете 
 //Если на локальную ПЭВМ то имя компьютора будет "."
    string ipAddress = textEdit1.Text;
    if (ipAddress == Environment.MachineName)
    {
        ipAddress = ".";
        ret = 1;
    }
 
    ManagementScope scope = new ManagementScope(@"\\" + ipAddress + @"\root\cimv2");
    scope.Options = co;
 
    // r_server - имя службы которую вы собираетесь остановить
    SelectQuery query = new SelectQuery("select * from Win32_Service where name = 'r_server'");

    using (ManagementObjectSearcher searcher = new
                ManagementObjectSearcher(scope, query))
    {
        ManagementObjectCollection collection = searcher.Get();
        foreach (ManagementObject service in collection)
        {

            object result = service.InvokeMethod("StopService", new object[] { });
            uint returnValue = (uint)result;
            if (returnValue != 0)
            {
                Listbox("Невозможно остановить данную службу");
                ret = 0;
            }
            else
            {
                Listbox("Служба успешно остановлена.");
                ret = 1;
            }
        }
    }
    #endregion
    return ret;
}

Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!