Share via


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

La méthode de classe WMIPauseService tente de placer le service dans l’état suspendu.

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 PauseService();

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

Une fois que vous avez déterminé quels services peuvent être arrêtés ou suspendus, vous pouvez utiliser les méthodes StopService et PauseService pour arrêter et suspendre les services. La décision d’arrêter un service plutôt que de le suspendre, ou vice versa, dépend de plusieurs facteurs, notamment les suivants :

  • Le service peut-il être suspendu ? Si ce n’est pas le cas, votre seule option est l’arrêt du service.
  • Devez-vous continuer à gérer les demandes des clients pour toute personne déjà connectée au service ? Si c’est le cas, la suspension d’un service lui permet généralement de gérer des clients existants tout en refusant l’accès à de nouveaux clients. En revanche, lorsque vous arrêtez un service, tous les clients sont immédiatement déconnectés.
  • Avez-vous besoin de reconfigurer un service pour que les modifications prennent effet immédiatement ? Bien que les propriétés du service puissent être modifiées pendant la pause d’un service, la plupart d’entre elles ne prennent effet qu’une fois le service arrêté et redémarré.

Le code de script requis pour arrêter un service est presque identique au code requis pour suspendre le service.

Exemples

L’exemple Suspendre les services s’exécutant sous un compte spécifique VBScript met en pause tous les services exécutés sous le compte de service hypothétique « Netsvc ».

L’exemple de code VBScript suivant montre comment suspendre un service spécifique à 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.PauseService()
  if RetVal = 0 then 
   WScript.Echo "Service paused"   
  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 montre comment suspendre un service spécifique à 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, $SupportsPause, $RetVal);  
eval {$ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='Schedule'"); };
unless($@)
{
 foreach my $ServiceInst (in $ServiceSet)
 {
  if ($ServiceInst->{AcceptPause})
  {
   $RetVal = $ServiceInst->PauseService();
   if ($RetVal == 0)
   {
    print "\nService paused\n";
   }
   else
   {
    if ($RetVal == 1)
    {
     print "\nPause not supported\n" ;
    }
    else 
    {
     print "\nAn error occurred:", $RetVal, "\n";
    }
   } 
  }
  else
  {
   print "\nService does not support pause\n";
  }
 }
}
else
{
 print STDERR "\n", 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

StopService