Compartilhar via


Método ResumeService da classe Win32_Service (Provedores WMI CIMWin32)

O método de classe WMIResumeService tenta colocar o serviço referenciado no estado retomado.

Este tópico usa a sintaxe MOF (Managed Object Format). Para obter mais informações sobre como usar esse método, consulte Chamando um método.

Sintaxe

uint32 ResumeService();

Parâmetros

Esse método não tem parâmetros.

Valor retornado

Retorna um dos valores listados na lista a seguir ou qualquer outro valor para indicar um erro. Para obter códigos de erro adicionais, consulte Constantes de erro WMI ou WbemErrorEnum. Para obter valores gerais de HRESULT , consulte Códigos de erro do sistema.

0

A solicitação foi aceita.

1

A solicitação não terá suporte.

2

O usuário não tinha o acesso necessário.

3

O serviço não pode ser interrompido, porque outros serviços em execução dependem dele.

4

O código de controle pedido não é válido ou é inaceitável para o serviço.

5

O código de controle solicitado não pode ser enviado ao serviço porque o estado do serviço (Win32_BaseService. Propriedade State ) é igual a 0, 1 ou 2.

6

O serviço não foi iniciado.

7

O serviço não respondeu à solicitação de início em um tempo oportuno.

8

Falha desconhecida ao iniciar o serviço.

9

O caminho do diretório para o arquivo executável do serviço não foi encontrado.

10

O serviço já está em execução.

11

O banco de dados para adicionar um serviço novo está bloqueado.

12

Uma dependência da qual esse serviço depende foi removida do sistema.

13

O serviço não localizou o serviço necessário em um serviço dependente.

14

O serviço foi desabilitado do sistema.

15

O serviço não tem a autenticação correta para ser executado no sistema.

16

Esse serviço está sendo removido do sistema.

17

O serviço não tem thread de execução.

18

O serviço tem dependências circulares quando é iniciado.

19

Um serviço está em execução com o mesmo nome.

20

O nome do serviço tem caracteres inválidos.

21

Parâmetros inválidos foram passados para o serviço.

22

A conta na qual esse serviço é executado é inválida ou não tem as permissões para executar o serviço.

23

O serviço existe no banco de dados de serviços disponível no sistema.

24

O serviço está pausado atualmente no sistema.

Comentários

Embora possa parecer não haver nenhuma diferença prática entre um serviço parado e um serviço que está em pausa, os dois estados aparecem de forma diferente do SCM. Um serviço parado é um serviço que não está em execução e deve passar por todo o procedimento de início do serviço. Um serviço em pausa, no entanto, ainda está em execução, mas teve seu funcionamento suspenso. Por isso, um serviço em pausa não precisa passar por todo o procedimento de início do serviço, mas precisa de um procedimento diferente para retomar o funcionamento.

Você deve usar o método adequado para iniciar um serviço que foi interrompido ou para retomar um serviço que foi pausado. Os métodos Win32_ServiceStartService e ResumeService devem ser usados nas seguintes situações:

  • Se um serviço estiver parado no momento, você deverá usar o método StartService para reiniciá-lo; ResumeService não pode iniciar um serviço que está parado no momento.
  • Se um serviço estiver em pausa, você deverá usar ResumeService. Se você usar o método StartService em um serviço em pausa, receberá a mensagem "O serviço já está em execução". No entanto, o serviço permanece em pausa até que o código de controle de serviço de retomada seja enviado a ele.

Exemplos

O exemplo Retomar Serviços de Início Automático pausados do VBScript reinicia todos os serviços de início automático que foram pausados.

O exemplo de código VBScript a seguir descreve como retomar um serviço em pausa de instâncias de Win32_Service.

Observação

O serviço deve dar suporte à pausa e já estar em execução.

Set ServiceSet = GetObject("winmgmts:").ExecQuery("select * from Win32_Service where Name='Schedule'")

for each Service in ServiceSet
 SupportsPause = Service.AcceptPause
 if SupportsPause = true then
  RetVal = Service.ResumeService()
  if RetVal = 0 then 
   WScript.Echo "Service resumed"   
  else
   if RetVal = 1 then 
    WScript.Echo "Pause not supported" 
   else WScript.Echo "An error occurred:" & RetVal
   End If
  End If
 else
  WScript.Echo "Service does not support pause"
 end if
next

O exemplo de código Perl a seguir descreve como retomar um serviço em pausa de instâncias de Win32_Service.

Observação

O serviço deve dar suporte à pausa e já estar em execução.

use strict;
use Win32::OLE;

my $ServiceSet;

eval { $ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='Schedule'"); };

if (!$@ && defined $ServiceSet)
{
 foreach my $Service (in $ServiceSet)
 {
  my $SupportsPause = $Service->{AcceptPause};
  if ($SupportsPause)
  {
   my $RetVal = $Service->ResumeService();
   if ($RetVal == 0)
   {
    print "\nService resumed\n";
   }
   else
   {
    if ($RetVal == 1)
    {
     print STDERR "\nPause not supported\n";
    }
    else
    {
     print STDERR "\nAn error occurred: ", $RetVal, "\n";
    }
   }
  }
  else
  {
   print "\nService does not support pause\n";
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

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

Classes do sistema operacional

Win32_Service

Tarefas do WMI: Serviços