Partager via


Méthode ResumeService de la classe Win32_Service (fournisseurs WMI CIMWin32)

La méthode de classe WMIResumeService tente de placer le service référencé dans l’état repris.

Cette rubrique utilise la syntaxe MOF (Managed Object Format). Pour plus d’informations sur l’utilisation de cette méthode, consultez Appel d’une méthode.

Syntaxe

uint32 ResumeService();

Paramètres

Cette méthode n’a aucun paramètre.

Valeur retournée

Retourne l’une des valeurs répertoriées dans la liste suivante, ou toute autre valeur pour indiquer une erreur. Pour obtenir des codes d’erreur supplémentaires, consultez Constantes d’erreur WMI ou WbemErrorEnum. Pour connaître les valeurs HRESULT générales, consultez Codes d’erreur système.

0

La demande a été acceptée.

1

La demande n'est pas prise en charge.

2

L’utilisateur n’avait pas l’accès nécessaire.

3

Le service ne peut pas être arrêté car d'autres services en cours d'exécution en dépendent.

4

Le code de contrôle demandé n'est pas valide ou est inacceptable pour le service.

5

Le code de contrôle demandé ne peut pas être envoyé au service, car l’état du service (Win32_BaseService. State property) est égal à 0, 1 ou 2.

6

Le service n'a pas été démarré.

7

Le service n'a pas répondu à la demande de démarrage en temps voulu.

8

Échec inconnu au démarrage du service.

9

Le chemin d’accès au répertoire du fichier exécutable de service est introuvable.

10

Le service est déjà en cours d'exécution.

11

La base de données pour ajouter un nouveau service est verrouillée.

12

Une dépendance sur laquelle ce service s’appuie a été supprimée du système.

13

Le service n'a pas pu trouver le service nécessaire à partir d'un service dépendant.

14

Le service a été désactivé du système.

15

Le service ne dispose pas de l'authentification correcte pour être exécuté sur le système.

16

Ce service est supprimé du système.

17

Le service n’a pas de thread d’exécution.

18

Le service a des dépendances circulaires au démarrage.

19

Un service s’exécute sous le même nom.

20

Le nom du service comporte des caractères non valides.

21

Des paramètres non valides ont été passés au service.

22

Le compte sous lequel ce service s’exécute n’est pas valide ou n’a pas les autorisations nécessaires pour exécuter le service.

23

Le service existe dans la base de données des services disponibles dans le système.

24

Le service est actuellement mis en pause dans le système.

Notes

Bien qu’il ne semble pas y avoir de différence pratique entre un service arrêté et un service suspendu, les deux états apparaissent différemment du SCM. Un service arrêté est un service qui n’est pas en cours d’exécution et qui doit passer par l’ensemble de la procédure de démarrage du service. Toutefois, un service suspendu est toujours en cours d’exécution, mais son fonctionnement est suspendu. Pour cette raison, un service suspendu n’a pas besoin de passer par l’ensemble de la procédure de démarrage du service, mais a besoin d’une autre procédure pour reprendre son fonctionnement.

Vous devez utiliser la méthode appropriée pour démarrer un service qui a été arrêté ou pour reprendre un service qui a été suspendu. Les méthodes Win32_ServiceStartService et ResumeService doivent être utilisées dans les situations suivantes :

  • Si un service est actuellement arrêté, vous devez utiliser la méthode StartService pour le redémarrer ; ResumeService ne peut pas démarrer un service actuellement arrêté.
  • Si un service est suspendu, vous devez utiliser ResumeService. Si vous utilisez la méthode StartService sur un service suspendu, vous recevez le message « Le service est déjà en cours d’exécution ». Toutefois, le service reste suspendu jusqu’à ce que le code de contrôle de service de reprise lui soit envoyé.

Exemples

L’exemple Reprendre les services de démarrage automatique qui sont en pause vbScript redémarre tous les services de démarrage automatique qui ont été suspendus.

L’exemple de code VBScript suivant décrit comment reprendre un service suspendu à partir d’instances de Win32_Service.

Notes

Le service doit prendre en charge la mise en pause et être déjà en cours d’exécution.

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

L’exemple de code Perl suivant décrit comment reprendre un service suspendu à partir d’instances de Win32_Service.

Notes

Le service doit prendre en charge la mise en pause et être déjà en cours d’exécution.

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";
}

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
Espace de noms
Root\CIMv2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Voir aussi

Classes du système d’exploitation

Win32_Service

Tâches WMI : Services