classe Win32_Service

A classe WMIWin32_Service representa um serviço em um sistema de computador que executa o Windows.

A sintaxe a seguir é simplificada do código MOF (Managed Object Format) e inclui todas as propriedades herdadas. Propriedades e métodos estão em ordem alfabética, não em ordem MOF.

Sintaxe

[Dynamic, Provider("CIMWin32"), SupportsUpdate, UUID("{8502C4D9-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Services"), AMENDMENT]
class Win32_Service : Win32_BaseService
{
  boolean  AcceptPause;
  boolean  AcceptStop;
  string   Caption;
  uint32   CheckPoint;
  string   CreationClassName;
  boolean  DelayedAutoStart;
  string   Description;
  boolean  DesktopInteract;
  string   DisplayName;
  string   ErrorControl;
  uint32   ExitCode;
  datetime InstallDate;
  string   Name;
  string   PathName;
  uint32   ProcessId;
  uint32   ServiceSpecificExitCode;
  string   ServiceType;
  boolean  Started;
  string   StartMode;
  string   StartName;
  string   State;
  string   Status;
  string   SystemCreationClassName;
  string   SystemName;
  uint32   TagId;
  uint32   WaitHint;
};

Membros

A classe Win32_Service tem estes tipos de membros:

Métodos

A classe Win32_Service tem esses métodos.

Método Descrição
Mudar Modifica um serviço.
ChangeStartMode Modifica o modo de início de um serviço.
Criar Cria um serviço novo.
Excluir Exclui um serviço existente.
GetSecurityDescriptor Retorna o descritor de segurança que controla o acesso ao serviço.
InterrogateService Solicita que um serviço atualize seu estado para o gerenciador de serviços.
PauseService Tenta colocar um serviço no estado em pausa.
ResumeService Tenta colocar um serviço no estado retomado.
SetSecurityDescriptor Grava uma versão atualizada do descritor de segurança que controla o acesso ao serviço.
Startservice Tenta colocar um serviço no estado de inicialização.
StopService Coloca um serviço no estado parado.
UserControlService Tenta enviar um código de controle definido pelo usuário para um serviço.

 

Propriedades

A classe Win32_Service tem essas propriedades.

AcceptPause

Tipo de dados: booliano

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | SERVICE_STATUS|dwControlsAccepted| SERVICE_ACCEPT_PAUSE_CONTINUE"), DisplayName ("Service Accepts Pause")

Indica se o serviço pode ser pausado.

Essa propriedade é herdada de Win32_BaseService.

AcceptStop

Tipo de dados: booliano

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | SERVICE_STATUS|dwControlsAccepted| SERVICE_ACCEPT_STOP"), DisplayName ("Service Accepts Stop")

Indica se o serviço pode ser interrompido.

Essa propriedade é herdada de Win32_BaseService.

Legenda

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MaxLen (64), DisplayName ("Caption")

Descrição curta do serviço — uma cadeia de caracteres de uma linha.

Essa propriedade é herdada de CIM_ManagedSystemElement.

Checkpoint

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | SERVICE_STATUS|dwCheckPoint"), DisplayName ("Check Point Count")

Valor que o serviço incrementa periodicamente para relatar seu progresso durante uma longa operação de início, parada, pausa ou continuação. Por exemplo, o serviço incrementa esse valor à medida que conclui cada etapa de sua inicialização quando está iniciando. O programa de interface do usuário que invoca a operação no serviço usa esse valor para acompanhar o progresso do serviço durante uma operação longa. Esse valor não é válido e deve ser zero quando o serviço não tiver uma operação de início, parada, pausa ou continuação pendente.

CreationClassName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: CIM_Key, DisplayName ("Nome da Classe")

Nome da primeira classe concreta a ser exibida na cadeia de herança usada na criação de uma instância. Quando usada com as outras propriedades de chave da classe , essa propriedade permite que todas as instâncias dessa classe e suas subclasses sejam identificadas exclusivamente.

Essa propriedade é herdada de CIM_Service.

DelayedAutoStart

Tipo de dados: booliano

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | SERVICE_DELAYED_AUTO_START_INFO|fDelayedAutostart"), DisplayName ("Início Automático Atrasado")

Se True, o serviço será iniciado depois que outros serviços de inicialização automática forem iniciados, além de um pequeno atraso.

Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows Server 2008 R2, Windows 7, Windows Server 2008 e Windows Vista: essa propriedade não tem suporte antes de Windows Server 2016 e Windows 10 .

Descrição

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Description")

Descrição do objeto.

Essa propriedade é herdada de CIM_ManagedSystemElement.

DesktopInteract

Tipo de dados: booliano

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | QUERY_SERVICE_CONFIG|dwServiceType| SERVICE_INTERACTIVE_PROCESS"), DisplayName ("Interage com a Área de Trabalho")

Indica se o serviço pode criar ou se comunicar com janelas na área de trabalho e, portanto, interagir de alguma forma com um usuário. Os serviços interativos devem ser executados na conta Sistema Local. A maioria dos serviços não são interativos; ou seja, eles não se comunicam com o usuário de forma alguma.

Essa propriedade é herdada de Win32_BaseService.

DisplayName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | QUERY_SERVICE_CONFIG|lpDisplayName"), DisplayName ("Nome de Exibição")

Nome do serviço, conforme exibido no snap-in Serviços. Essa cadeia de caracteres tem um tamanho máximo de 256 caracteres. Observe que o nome de exibição e o nome do serviço (que é armazenado no registro) nem sempre são os mesmos. Por exemplo, o serviço cliente DHCP tem o nome de serviço Dhcp, mas o nome de exibição Cliente DHCP. O nome é preservado por maiúsculas e minúsculas no Service Control Manager. No entanto, as comparações de DisplayName sempre diferenciam maiúsculas de minúsculas.

Restrição: aceita o mesmo valor que a propriedade Name .

Exemplo: "Atdisk"

Essa propriedade é herdada de Win32_BaseService.

ErrorControl

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço| QUERY_SERVICE_CONFIG|dwErrorControl"), DisplayName ("Severidade da falha de inicialização")

Gravidade do erro se esse serviço não for iniciado durante a inicialização. O valor indica a ação executada pelo programa de inicialização se ocorrer uma falha. Todos os erros são anotados pelo sistema de computador.

Ignorar ("Ignorar")

O usuário não é notificado.

Normal ("Normal")

O usuário é notificado. Normalmente, essa será uma exibição de caixa de mensagem notificando o usuário sobre o problema.

Grave ("Grave")

Sistema é reiniciado com a última configuração bem-sucedida conhecida.

Crítico ("Crítico")

O sistema tenta reiniciar com uma configuração adequada. Se o serviço não iniciar uma segunda vez, a inicialização falhará.

Desconhecido ("Desconhecido")

A gravidade do erro é desconhecida.

Essa propriedade é herdada de Win32_BaseService.

ExitCode

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço| SERVICE_STATUS|dwWin32ExitCode"), DisplayName ("Código de Saída")

Código de erro do Windows que define os erros encontrados ao iniciar ou parar o serviço. Esta propriedade é definida como ERROR_SERVICE_SPECIFIC_ERROR (1066) quando o erro é exclusivo do serviço representado por essa classe, e as informações sobre o erro estão disponíveis na propriedade ServiceSpecificExitCode . O serviço define esse valor como NO_ERROR ao executar e novamente após o encerramento normal.

Essa propriedade é herdada de Win32_BaseService.

InstallDate

Tipo de dados: datetime

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("MIF. DMTF| ComponentID|001.5"), DisplayName ("Data de Instalação")

O objeto Date está instalado. Essa propriedade não requer um valor para indicar que o objeto está instalado.

Essa propriedade é herdada de CIM_ManagedSystemElement.

Nome

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: Chave

Identificador exclusivo do serviço que fornece uma indicação da funcionalidade que é gerenciada. Essa funcionalidade é descrita na propriedade Description do objeto .

Essa propriedade é herdada de CIM_ManagedSystemElement.

PathName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço| QUERY_SERVICE_CONFIG|lpBinaryPathName"), DisplayName ("Nome do Caminho do Arquivo")

Caminho totalmente qualificado para o arquivo binário de serviço que implementa o serviço.

Exemplo: "\SystemRoot\System32\drivers\afd.sys"

Essa propriedade é herdada de Win32_BaseService.

ProcessId

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço| SERVICE_STATUS_PROCESS|dwProcessId"), DisplayName ("ID do processo")

Identificador de processo do serviço.

Exemplo: 324

ServiceSpecificExitCode

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço| SERVICE_STATUS|dwServiceSpecificExitCode"), DisplayName ("Código de Saída Específico do Servidor")

Código de erro específico do serviço para erros que ocorrem enquanto o serviço está iniciando ou parando. Os códigos de saída são definidos pelo serviço representado por essa classe. Esse valor só é definido quando o valor da propriedade ExitCode é ERROR_SERVICE_SPECIFIC_ERROR (1066).

Essa propriedade é herdada de Win32_BaseService.

Servicetype

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço| QUERY_SERVICE_CONFIG|dwServiceType"), DisplayName ("Tipo de serviço")

Tipo de serviço fornecido a processos de chamada.

Os valores são:

Driver kernel ("Kernel Driver")

Driver do Sistema de Arquivos ("Driver do Sistema de Arquivos")

Adaptador ("Adaptador")

Driver do Reconhecedor ("Driver do Reconhecedor")

Processo Próprio ("Processo Próprio")

Processo de compartilhamento ("Processo de compartilhamento")

Processo Interativo ("Processo Interativo")

Essa propriedade é herdada de Win32_BaseService.

Iniciado

Tipo de dados: booliano

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Started")

Indica se o serviço foi iniciado ou não.

Essa propriedade é herdada de CIM_Service.

StartMode

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Modo de Início")

Modo inicial do serviço base do Windows.

Inicialização ("Inicialização")

Driver de dispositivo iniciado pelo carregador do sistema operacional (válido apenas para serviços de driver).

Sistema ("Sistema")

Driver de dispositivo iniciado pelo processo de inicialização do sistema operacional. Esse valor só é válido para serviços do driver.

Automático ("Automático")

Serviço a ser iniciado automaticamente pelo gerenciador de controle de serviço durante a inicialização do sistema. Os serviços automáticos são iniciados mesmo que um usuário não faça logon.

Manual ("Manual")

Serviço a ser iniciado pelo Service Control Manager quando um processo chama o método StartService . Esses serviços não são iniciados, a menos que um usuário faça logon e inicie-os.

Desabilitado ("Desabilitado")

Serviço que não pode ser iniciado até que seu StartMode seja alterado para Automático ou Manual.

Essa propriedade é herdada de CIM_Service.

Startname

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | QUERY_SERVICE_CONFIG|lpServiceStartName"), DisplayName ("Nome da Conta Inicial")

Nome da conta sob o qual um serviço é executado. Dependendo do tipo de serviço, o nome da conta pode estar na forma de "DomainName\Username" ou formato UPN ("Username@DomainName"). O processo de serviço é registrado usando um desses dois formulários quando é executado. Se a conta pertencer ao domínio interno, ".\Username" poderá ser especificado. Para drivers de kernel ou de nível de sistema, StartName contém o nome do objeto do driver (ou seja, "\FileSystem\Rdr" ou "\Driver\Xns") que o sistema de E/S usa para carregar o driver do dispositivo. Além disso, se NULL for especificado, o driver será executado com um nome de objeto padrão criado pelo sistema de E/S com base no nome do serviço.

Exemplo: "DWDOM\Administração"

Essa propriedade é herdada de Win32_BaseService.

State

Tipo de dados: cadeia de caracteres

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | SERVICE_STATUS|dwCurrentState "), DisplayName ("State")

Estado atual do serviço base.

Os valores são:

Parado ("Parado")

Iniciar Pendente ("Iniciar Pendente")

Parar Pendente ("Parar Pendente")

Em execução ("Em execução")

Continuar Pendente ("Continuar Pendente")

Pausa pendente ("Pausa pendente")

Pausado ("Pausado")

Desconhecido ("Desconhecido")

Windows Server 2008 e Windows Vista: Essa propriedade é somente leitura antes do Windows 7 e do Windows Server 2008 R2.

Essa propriedade é herdada de Win32_BaseService.

Status

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MaxLen (10), DisplayName ("Status")

Status atual do objeto. Vários status operacionais e não operacionais podem ser definidos. Os status operacionais incluem: "OK", "Degradado" e "Falha de Pred" (um elemento, como uma unidade de disco rígido habilitada para SMART, pode estar funcionando corretamente, mas prevendo uma falha em um futuro próximo). Os status não operacionais incluem: "Erro", "Iniciando", "Parando" e "Serviço". Este último, "Serviço", pode ser aplicado durante espelho-resilvering de um disco, recarregar uma lista de permissões de usuário ou outro trabalho administrativo. Nem todo esse trabalho está online, mas o elemento gerenciado não é "OK" nem em um dos outros estados.

Essa propriedade é herdada de CIM_ManagedSystemElement.

Os valores são:

OK ("OK")

Erro ("Erro")

Degradado ("Degradado")

Desconhecido ("Desconhecido")

Pred Fail ("Pred Fail")

Iniciando ("Iniciando")

Parando ("Parando")

Serviço ("Serviço")

Estressado ("Estressado")

NonRecover ("NonRecover")

Sem Contato ("Sem Contato")

Lost Comm ("Lost Comm")

SystemCreationClassName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: propagados ("CIM_System. CreationClassName"), CIM_Key, DisplayName ("Nome da Classe do Sistema")

Digite o nome do sistema que hospeda esse serviço.

Essa propriedade é herdada de CIM_Service.

Systemname

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: propagados ("CIM_System. Nome"), CIM_Key, DisplayName ("Nome do Sistema")

Nome do sistema que hospeda esse serviço.

Essa propriedade é herdada de CIM_Service.

TagId

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | QUERY_SERVICE_CONFIG|dwTagId"), DisplayName ("ID da marca")

Valor de marca exclusivo para esse serviço no grupo. Um valor de 0 (zero) indica que o serviço não tem uma marca. Uma marca pode ser usada para ordenar a inicialização do serviço em um grupo de ordem de carga especificando um vetor de ordem de marca no registro localizado em:

HKEY_LOCAL_MACHINE\Sistema\Currentcontrolset\Controle\    GroupOrderList

As marcas são avaliadas apenas para os serviços de tipo inicial do Driver do Kernel e do Driver do Sistema de Arquivos que têm modos inicialização ou inicialização do sistema.

Essa propriedade é herdada de Win32_BaseService.

WaitHint

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de serviço | SERVICE_STATUS|dwWaitHint"), DisplayName ("Tempo de Espera Estimado")

Tempo estimado necessário, em milissegundos, para uma operação de início, parada, pausa ou continuação pendente. Depois que o tempo especificado tiver decorrido, o serviço fará sua próxima chamada para o método SetServiceStatus com um valor de CheckPoint incrementado ou uma alteração em CurrentState. Se a quantidade de tempo especificada por WaitHint for aprovada e CheckPoint não tiver sido incrementado ou CurrentState não tiver sido alterado, o gerenciador de controle de serviço ou programa de controle de serviço assumirá que ocorreu um erro.

Comentários

A classe Win32_Service é derivada de Win32_BaseService.

A maneira como você gerencia um computador específico depende muito da função que o computador desempenha. Por exemplo, você geralmente monitora diferentes aspectos de um servidor DNS do que um servidor DHCP. Embora nenhuma propriedade única possa informar se um determinado computador é um servidor de banco de dados, um servidor de email ou um servidor multimídia, muitas vezes você pode identificar a função que um computador desempenha identificando os serviços instalados nele.

Em grandes organizações, é provável que apenas um dos principais serviços (como email) seja instalado em um único computador. Seria incomum que um servidor de email também fosse executado como um servidor para arquivos de player de tecnologias do Microsoft® Windows Media®. Por isso, identificar um serviço instalado em um computador pode ajudar a identificar a função do computador na rede. Se o serviço microsoft® Exchange Server estiver instalado e em execução em um computador, geralmente é seguro assumir que esse computador funciona como um servidor de email.

Você pode usar a classe Win32_Service WMI para enumerar os serviços instalados em um computador. Além disso, você pode usar essa classe para determinar se esses serviços estão em execução no momento e para retornar quaisquer outras informações necessárias sobre esse serviço e como ele foi configurado.

Um aplicativo de serviço está em conformidade com as regras de interface do SCM (Service Control Manager) e pode ser iniciado por um usuário automaticamente no início do sistema por meio do utilitário do painel de controle Serviços ou por um aplicativo que usa as funções de serviço incluídas na API do Windows. Os serviços podem começar quando não há usuários conectados ao computador.

Um usuário que se conecta de um computador remoto deve ter o privilégio SC_MANAGER_CONNECT habilitado para poder enumerar essa classe. Para obter mais informações, consulte Segurança do serviço e Direitos de Acesso.

Exemplos

A consulta PS- WMI que retorna o Serviço 'Estado' em um grupo de dispositivos Exemplo do PowerShell na Galeria do TechNet usa Win32_Service para criar uma lista de dispositivos do Active Directory e, em seguida, consultar cada dispositivo que responde com pingpara um serviço específico em execução.

O exemplo do PowerShell de Relatório do Servidor na Galeria do TechNet usa Win32_Service para coletar informações do servidor e publicar em Word documento.

O exemplo de código VBScript a seguir exibe todos os serviços instalados no momento.

for each Service in _ 
    GetObject("winmgmts:").InstancesOf ("Win32_Service")
 WScript.Echo ""
 WScript.Echo Service.Name

 description = Service.Description 
 if IsNull(description) then description = "<No description>"

 pathName = Service.PathName
 if IsNull(pathName) then pathName = "<No path>"

 startName = Service.StartName
 if IsNull(startName) then startName = "<None>"

 WScript.Echo "  Description:  ", description
 WScript.Echo "  Executable:   ", pathName
 WScript.Echo "  Status:       ", Service.Status
 WScript.Echo "  State:        ", Service.State
 WScript.Echo "  Start Mode:   ", Service.StartMode
 Wscript.Echo "  Start Name:   ", startName
next

O exemplo de código VBScript a seguir descreve os serviços pausados, em execução e interrompidos no computador especificado.

On Error Resume Next
 StateString = "Paused,Running,Stopped"
 StateArray = Split(StateString, ",", -1, 1) 
 ComputerName = InputBox("Enter the computer name", "List Service", "localhost")

 For x = 0 to Ubound (StateArray)
 Set Services = GetObject("winmgmts:\\" & ComputerName & "\Root\CIMv2").ExecQuery("SELECT * FROM Win32_Service where State='" & StateArray(x) & "'")
 
 For Each Service in Services
  SList = SList & Service.Name & VBlf 
 Next

 WScript.Echo StateArray(x) & " Services: " & VBlf & SList
 SList = ""

Next

O script Perl a seguir demonstra como recuperar uma lista de serviços em execução de instâncias de Win32_Service.

use strict;
use Win32::OLE;

my ( $ServiceSet, $Service );

eval { $ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
 ExecQuery("SELECT * FROM Win32_Service WHERE State=\"Running\""); };
unless ($@)
{
 print "\n";
 foreach $Service (in $ServiceSet) 
 {
  print $Service->{Name}, "\n";
  if( $Service->{Description} ) 
   {
    print "  $Service->{Description}\n";
   }
  else
   {
    print "  <No description>\n";
   }
  print "  Process ID: ", $Service->{ProcessId}, "\n";
  print "  Start Mode: ", $Service->{StartMode}, "\n";
  print "\n";
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

O exemplo de c# a seguir usa Microsoft.Management.Infrastructure para recuperar todos os serviços em execução no computador local.

static void QueryInstanceFunc()
        {
 
            CimSession session = CimSession.Create("localHost");
            IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_Service");

            foreach (CimInstance cimObj in queryInstance)
            {
                Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString());
                Console.WriteLine(cimObj.CimInstanceProperties["State"].ToString());
                Console.WriteLine(cimObj.CimInstanceProperties["Status"].ToString());
                
                //Console.WriteLine(cimObj.CimInstanceProperties["NetworkAddress"].ToString());
                Console.WriteLine();

            }

            Console.ReadLine();
        }
    

O exemplo de código C# a seguir usa o namespace System.Management para recuperar todos os serviços em execução no computador local.

Observação

System.Management contém as classes originais usadas para acessar o WMI; no entanto, eles são considerados mais lentos e geralmente não são dimensionados, bem como seus equivalentes Microsoft.Management.Infrastructure .

 

using System.Management;
...
        static void oldSchoolQueryInstanceFunc()
        {

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


            ManagementObjectCollection queryCollection = searcher.Get();
            foreach (ManagementObject m in queryCollection)
            {
                Console.WriteLine("ServiceName : {0}", m["Name"]);
                Console.WriteLine("State : {0}", m["State"]);
                Console.WriteLine("Status : {0}", m["Status"]);
                Console.WriteLine();
            }

            Console.ReadLine();


        }

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Confira também

Win32_BaseService

Classes do sistema operacional

Tarefas do WMI: Serviços