WMI remove service(Удаление службы через WMI)


string ipAddress = textEdit1.Text;
string serviceName = "r_server";

ConnectionOptions co = new ConnectionOptions();
co.Username = textEdit2.Text;
co.Password = textEdit3.Text;
co.EnablePrivileges = true;
co.Impersonation = ImpersonationLevel.Impersonate;

ManagementScope scope = new ManagementScope(@"\\" + ipAddress + @"\root\cimv2");
scope.Options = co;

SelectQuery query = new SelectQuery("select * from Win32_Service where name = '" + serviceName + "'");

try
{
    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)
            {
                result = service.InvokeMethod("Delete", new object[] { });
                returnValue = (uint)result;
                if (returnValue == 0)
                {
                    MessageBox.Show("Служба " + serviceName + " удалена!",
                        "Удаление службы " + serviceName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                    MessageBox.Show("Невозможно удалить данную службу.",
                        "Удаление службы " + serviceName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
                MessageBox.Show("Невозможно остановить данную службу перед удалением.",
                        "Удаление службы " + serviceName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
    }
}
catch (Exception ex)
{
    MessageBox.Show("Невозможно удалить данную службу." + Environment.NewLine +
    "Ошибка:" + ex.Message.ToString(),
                    "Удаление службы " + serviceName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

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

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

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