Detect é quando um serviço do Windows foi excluído

BillyDay:

Existe uma maneira de detectar quando um serviço do Windows foi excluído? Eu verifiquei o log de eventos, mas ele não pegar ações excluído somente adicionados.

Eu acredito que pode haver uma maneira de usar os logs de auditoria mas não estou certo de como fazer isso?

Qualquer ajuda é muito apreciada.

obrigado

clint:

Enquanto não há nenhum traço de eliminação serviço em eventos ou auditoria registros, o que você pode fazer é criar um pequeno aplicativo console que detecta se existe um serviço e anexar este aplicativo para Windows Task Schedulertal que está programado para executar com base na freqüência ou um gatilho que você pode personalizar a suas exigências de tal forma que você receberá um alerta se um serviço foi adicionado ou removido etc ..

O console app é projetado de tal forma que na primeira execução, ele registra todos os serviços no sistema e nas pistas subsequentes será o rastreamento de alterações feitas nos serviços via servicesRemovede servicesAdded, com isso, podemos decidir que ação tomar quando um serviço tem foi modificado

Console App: ServiceDetector.exe

static void Main(string[] args)
{
    var path = @"C:\AdminLocation\ServicesLog.txt";

    var currentServiceCollection = ServiceController.GetServices().Select(s => s.ServiceName).ToList(); //Queries the most current Services from the machine

    if (!File.Exists(path)) //Creates a Log file with current services if not present, usually means the first run
    {
        // Assumption made is that this is the first run
        using (var text = File.AppendText(path))
        {
            currentServiceCollection.ForEach((s) => text.WriteLine(s));
        }
        return;
    }

    // Fetches the recorded services from the Log
    var existingServiceCollection = File.ReadAllLines(path).ToList();

    var servicesRemoved = existingServiceCollection.Except(currentServiceCollection).ToList();
    var servicesAdded = currentServiceCollection.Except(existingServiceCollection).ToList();

    if (!servicesAdded.Any() && !servicesRemoved.Any())
    { Console.WriteLine("No services have been added or removed"); return; }

    //If any services has been added
    if (servicesAdded.Any())
    {
        Console.WriteLine("One or more services has been added");
        using (var text = File.AppendText(path))
        {
            servicesAdded.ForEach((s) => text.WriteLine(s));
        }
        return;
    }
    //Service(s) may have been deleted, you can choose to record it or not based on your requirements
    Console.WriteLine("One or more services has been removed");

}

agendamento de tarefas

O Windows Iniciar> Agendador de Tarefas> Criar Básico Tarefa> Set Gatilho> Junte a sua exe> Finish

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=369147&siteId=1
Recomendado
Clasificación