Compartir a través de


Método ResumeService de la clase Win32_Service (proveedores WMI CIMWin32)

El método de clase WMIResumeService intenta colocar el servicio al que se hace referencia en el estado reanudado.

En este tema se usa la sintaxis de Managed Object Format (MOF). Para obtener más información sobre el uso de este método, vea Llamar a un método.

Sintaxis

uint32 ResumeService();

Parámetros

Este método no tiene parámetros.

Valor devuelto

Devuelve uno de los valores enumerados en la lista siguiente o cualquier otro valor para indicar un error. Para obtener códigos de error adicionales, consulte Constantes de error WMI o WbemErrorEnum. Para obtener valores HRESULT generales, consulte Códigos de error del sistema.

0

Se aceptó la solicitud.

1

No se admite la solicitud.

2

El usuario no tenía el acceso necesario.

3

No se puede detener el servicio porque otros servicios que se están ejecutando dependen de él.

4

El código de control solicitado no es válido o no es aceptable para el servicio.

5

El código de control solicitado no se puede enviar al servicio porque el estado del servicio (Win32_BaseService. Propiedad de estado ) es igual a 0, 1 o 2.

6

El servicio no se ha iniciado.

7

El servicio no respondió a tiempo a la solicitud de inicio.

8

Error desconocido al iniciar el servicio.

9

No se encontró la ruta de acceso del directorio al archivo ejecutable del servicio.

10

El servicio ya se está ejecutando.

11

La base de datos para agregar un nuevo servicio está bloqueada.

12

Una dependencia en la que se basa este servicio se ha quitado del sistema.

13

El servicio no pudo encontrar el servicio necesario de un servicio dependiente.

14

El servicio se ha deshabilitado del sistema.

15

El servicio no tiene la autenticación correcta para ejecutarse en el sistema.

16

Este servicio se está quitando del sistema.

17

El servicio no tiene ningún subproceso de ejecución.

18

El servicio tiene dependencias circulares cuando se inicia.

19

Un servicio se ejecuta con el mismo nombre.

20

El nombre del servicio tiene caracteres no válidos.

21

Se han pasado parámetros no válidos al servicio.

22

La cuenta con la que se ejecuta este servicio no es válida o carece de los permisos para ejecutar el servicio.

23

El servicio existe en la base de datos de servicios disponibles del sistema.

24

El servicio se encuentra en pausa actualmente en el sistema.

Comentarios

Aunque puede parecer que no hay ninguna diferencia práctica entre un servicio detenido y un servicio que está en pausa, los dos estados aparecen de forma diferente al SCM. Un servicio detenido es un servicio que no se está ejecutando y debe pasar por todo el procedimiento de inicio del servicio. Sin embargo, todavía se está ejecutando un servicio en pausa, pero ha tenido su funcionamiento suspendido. Por este motivo, un servicio en pausa no necesita pasar por todo el procedimiento de inicio del servicio, pero necesita otro procedimiento para reanudar el funcionamiento.

Debe usar el método adecuado para iniciar un servicio que se ha detenido o para reanudar un servicio que se ha pausado. Los métodos Win32_ServiceStartService y ResumeService deben usarse en las situaciones siguientes:

  • Si un servicio está detenido actualmente, debe usar el método StartService para reiniciarlo; ResumeService no puede iniciar un servicio que está detenido actualmente.
  • Si un servicio está en pausa, debe usar ResumeService. Si usa el método StartService en un servicio en pausa, recibirá el mensaje "El servicio ya se está ejecutando". Sin embargo, el servicio permanece en pausa hasta que se envía el código de control del servicio de reanudación.

Ejemplos

El ejemplo Resume AutoStart Services that are Paused VBScript restarts any auto-start services that have been paused.

En el ejemplo de código vbScript siguiente se describe cómo reanudar un servicio en pausa a partir de instancias de Win32_Service.

Nota

El servicio debe admitir la pausa y estar ejecutándose ya.

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

En el ejemplo de código Perl siguiente se describe cómo reanudar un servicio en pausa a partir de instancias de Win32_Service.

Nota

El servicio debe admitir la pausa y estar ejecutándose ya.

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 Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Espacio de nombres
Root\CIMv2
MOF
CIMWin32.mof
Archivo DLL
CIMWin32.dll

Consulte también

Clases de sistema operativo

Win32_Service

Tareas de WMI: servicios