public IList <Servico> ObtemServicos() { //busca os executáveis da pasta var executaveis = _gerenciadorArquivo.ObtemPorExtensao(Configuracao.Ambiente.Origem, "exe").ToList(); executaveis.RemoveAll(x => x.Contains("vshost")); //busca os servicos instalados na maquina var servicosMaquina = _gerenciadorServico.Obtem(); //transforma em servico verificando se está instalado e o status var servicos = new List <Servico>(); // ReSharper disable once LoopCanBeConvertedToQuery foreach (var executavel in executaveis) { //pega o instalador dentro do serviço var installer = new AssemblyInstaller(executavel, new[] { "" }) { UseNewContext = true }.PegaServiceInstaller(); //pega os dados do serviço caso esteja instalado var servicoMaquina = servicosMaquina.FirstOrDefault(x => x.ServiceName.Equals(installer.DisplayName)); servicos.Add(new Servico(installer, servicoMaquina, executavel)); } return(servicos); }