_Classe de service Win32

La classe WMI du _ service Win32 représente un service sur un système informatique exécutant Windows.

La syntaxe suivante est simplifiée par rapport au code MOF (Managed Object Format) et inclut toutes les propriétés héritées. Les propriétés et les méthodes sont classées par ordre alphabétique, et non par ordre MOF.

Syntaxe

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

Membres

La classe de _ service Win32 possède les types de membres suivants :

Méthodes

La classe de _ service Win32 possède ces méthodes.

Méthode Description
Modifier Modifie un service.
ChangeStartMode Modifie le mode de démarrage d’un service.
Créer Crée un nouveau service.
DELETE Supprime un service existant.
GetSecurityDescriptor Retourne le descripteur de sécurité qui contrôle l’accès au service.
InterrogateService Demande qu’un service met à jour son état dans Service Manager.
PauseService Tente de placer un service dans l’état suspendu.
ResumeService Tente de placer un service dans l’État repris.
SetSecurityDescriptor Écrit une version mise à jour du descripteur de sécurité qui contrôle l’accès au service.
StartService Tente de placer un service dans l’état de démarrage.
StopService Place un service dans l’état arrêté.
UserControlService Tente d’envoyer un code de contrôle défini par l’utilisateur à un service.

Propriétés

La classe de _ service Win32 a ces propriétés.

AcceptPause

Type de données : booléen

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("win32api | service structures | service _ | dwControlsAccepted | service _ accepter _ pause _ continue"), DisplayName ("service accepte pause")

Indique si le service peut être suspendu.

Cette propriété est héritée de Win32 _ BaseService.

AcceptStop

Type de données : booléen

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("win32api | service structures | service _ | DwControlsAccepted | service _ accepter _ Stop"), DisplayName ("service accepte Stop")

Indique si le service peut être arrêté.

Cette propriété est héritée de Win32 _ BaseService.

Caption

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MaxLen (64), DisplayName (« Caption »)

Brève description du service : chaîne d’une ligne.

Cette propriété est héritée de CIM _ ManagedSystemElement.

Contrôler

Type de données : UInt32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("win32api | service structures | _ Status service | DwCheckPoint"), DisplayName ("check point Count")

Valeur que le service incrémente régulièrement pour signaler sa progression pendant une opération de démarrage, d’arrêt, de suspension ou de poursuite de longue durée. Par exemple, le service incrémente cette valeur lors de la fin de chaque étape de son initialisation au démarrage. Le programme d’interface utilisateur qui appelle l’opération sur le service utilise cette valeur pour suivre la progression du service au cours d’une opération de longue durée. Cette valeur n’est pas valide et doit être égale à zéro lorsque l’opération de démarrage, d’arrêt, de suspension ou de reprise du service n’est pas en attente.

CreationClassName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : _ clé CIM, DisplayName ("nom de la classe")

Nom de la première classe concrète à afficher dans la chaîne d’héritage utilisée lors de la création d’une instance. Quand elle est utilisée avec les autres propriétés de clé de la classe, cette propriété autorise l’identification unique de toutes les instances de cette classe et de ses sous-classes.

Cette propriété est héritée du _ service CIM.

DelayedAutoStart

Type de données : booléen

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« win32api | service structures service | _ retardées _ _ _ informations de démarrage automatique | fDelayedAutostart »), DisplayName (« démarrage automatique retardé »)

Si la valeur est true, le service est démarré après le démarrage d’autres services à démarrage automatique, plus un bref délai.

Windows Server 2012 r2, Windows 8.1, Windows Server 2012, Windows 8, Windows server 2008 r2, Windows 7, Windows server 2008 et Windows Vista : cette propriété n’est pas prise en charge avant Windows Server 2016 et Windows 10.

Description

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : DisplayName ("Description")

Description de l’objet.

Cette propriété est héritée de CIM _ ManagedSystemElement.

DesktopInteract

Type de données : booléen

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« win32api | service structures | query _ service _ configuration | dwServiceType | _ Process interactive _ Process »), DisplayName (« interagit avec Desktop »)

Indique si le service peut créer ou communiquer avec Windows sur le bureau, et par conséquent interagir de quelque manière avec un utilisateur. Les services interactifs doivent s’exécuter sous le compte système local. La plupart des services ne sont pas interactifs. autrement dit, ils ne communiquent pas avec l’utilisateur de quelque manière que ce soit.

Cette propriété est héritée de Win32 _ BaseService.

DisplayName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« win32api | service structures | query _ service _ config | lpDisplayName »), DisplayName (« Display Name »)

Nom du service tel qu’il est affiché dans le composant logiciel enfichable Services. Cette chaîne a une longueur maximale de 256 caractères. Notez que le nom d’affichage et le nom du service (qui est stocké dans le registre) ne sont pas toujours identiques. Par exemple, le service client DHCP a le nom de service DHCP, mais le nom d’affichage client DHCP. Le nom est conservé dans le gestionnaire de contrôle des services. Toutefois, les comparaisons DisplayName ne respectent jamais la casse.

Constraint : accepte la même valeur que la propriété Name .

Exemple : « Atdisk »

Cette propriété est héritée de Win32 _ BaseService.

ErrorControl

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« win32api | service structures | query _ service _ config | dwErrorControl »), DisplayName (« gravité de l’échec de démarrage »)

Gravité de l’erreur si ce service ne parvient pas à démarrer au démarrage. La valeur indique l’action entreprise par le programme de démarrage en cas d’échec. Toutes les erreurs sont journalisées par le système informatique.

Ignorer ("ignorer")

L'utilisateur n'est pas notifié.

Normal (« normal »)

L'utilisateur est notifié. Il s’agit généralement d’un message indiquant que l’utilisateur du problème est affiché.

Grave (« grave »)

Le système est redémarré avec la dernière bonne configuration connue.

Critique (« critique »)

Le système tente de redémarrer avec une bonne configuration. Si le service ne démarre pas une deuxième fois, le démarrage échoue.

Inconnu ("inconnu")

La gravité de l’erreur est inconnue.

Cette propriété est héritée de Win32 _ BaseService.

ExitCode

Type de données : UInt32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("win32api | service structures | _ Status service | dwWin32ExitCode"), DisplayName ("code de sortie")

Windows code d’erreur qui définit les erreurs rencontrées lors du démarrage ou de l’arrêt du service. Cette propriété est définie sur erreur _ spécifique au service _ _ (1066) lorsque l’erreur est unique pour le service représenté par cette classe, et les informations sur l’erreur sont disponibles dans la propriété ServiceSpecificExitCode . Le service définit cette valeur sur aucune _ erreur lors de l’exécution, et à nouveau sur fin normale.

Cette propriété est héritée de Win32 _ BaseService.

InstallDate

Type de données : DateTime

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("MIF. DMTF | ComponentID | 001,5 "), DisplayName (" date d’installation ")

L’objet date est installé. Cette propriété ne requiert pas de valeur pour indiquer que l’objet est installé.

Cette propriété est héritée de CIM _ ManagedSystemElement.

Nom

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : clé

Identificateur unique du service qui fournit une indication de la fonctionnalité gérée. Cette fonctionnalité est décrite dans la propriété Description de l’objet.

Cette propriété est héritée de CIM _ ManagedSystemElement.

PathName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("win32api | service structures | query _ service _ config | LpBinaryPathName"), DisplayName ("file path Name")

Chemin d’accès complet au fichier binaire de service qui implémente le service.

Exemple : " \ systemroot \ system32 \ drivers \afd.sys"

Cette propriété est héritée de Win32 _ BaseService.

ProcessId

Type de données : UInt32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("win32api | Process structures service | _ Status _ Process | dwProcessId"), DisplayName ("Process ID")

Identificateur de processus du service.

Exemple : 324

ServiceSpecificExitCode

Type de données : UInt32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("win32api | service structures | _ Status service | dwServiceSpecificExitCode"), DisplayName ("code de sortie spécifique au serveur")

Code d’erreur spécifique au service pour les erreurs qui se produisent pendant que le service est en cours de démarrage ou d’arrêt. Les codes de sortie sont définis par le service représenté par cette classe. Cette valeur est définie uniquement lorsque la valeur de la propriété ExitCode est erreur _ spécifique au service _ _ (1066).

Cette propriété est héritée de Win32 _ BaseService.

ServiceType

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MappingStrings ("win32api | service structures | query _ service _ config | DwServiceType"), DisplayName ("type de service")

Type de service fourni aux processus appelants.

Les valeurs sont :

Pilote de noyau (« pilote de noyau »)

Pilote du système de fichiers (« pilote du système de fichiers »)

Carte (« adaptateur »)

Pilote de reconnaissance (« pilote de reconnaissance »)

Propre processus (« propre processus »)

Processus de partage (« processus de partage »)

Processus interactif (« processus interactif »)

Cette propriété est héritée de Win32 _ BaseService.

Démarré

Type de données : booléen

Type d'accès : Lecture seule

Qualificateurs : DisplayName ("Started")

Indique si le service est démarré ou non.

Cette propriété est héritée du _ service CIM.

StartMode

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : DisplayName (« mode de démarrage »)

mode de démarrage du service de base Windows.

Démarrage (« démarrage »)

Pilote de périphérique Démarré par le chargeur du système d’exploitation (valide uniquement pour les services de pilote).

Système (« système »)

Pilote de périphérique Démarré par le processus d’initialisation du système d’exploitation. Cette valeur est uniquement valide pour les services de pilote.

Auto (« auto »)

Le service doit être démarré automatiquement par le Gestionnaire de contrôle des services lors du démarrage du système. Les services automatiques sont démarrés même si un utilisateur ne se connecte pas.

Manuel (« manuel »)

Service qui doit être démarré par le gestionnaire de contrôle des services lorsqu’un processus appelle la méthode StartService . Ces services ne démarrent pas à moins qu’un utilisateur se connecte et ne les démarre.

Désactivé ("désactivé")

Service qui ne peut pas être démarré tant que son StartMode n’a pas été modifié en auto ou manuellement.

Cette propriété est héritée du _ service CIM.

StartName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« win32api | service structures | query _ service _ config | LpServiceStartName »), DisplayName (« Starting Account Name »)

Nom du compte sous lequel un service s’exécute. Selon le type de service, le nom du compte peut se présenter sous la forme « nom_domaine \ nom_utilisateur » ou au format UPN (« Username@DomainName »). Le processus de service est enregistré à l’aide de l’une de ces deux formes lorsqu’il s’exécute. Si le compte appartient au domaine intégré, «. \ Nom d’utilisateur» peut être spécifié. Pour les pilotes au niveau du noyau ou du système, StartName contient le nom d’objet du pilote (c’est-à-dire « \ FileSystem \ RDR » ou « \ Driver \ XNS ») que le système d’e/s utilise pour charger le pilote de périphérique. En outre, si null est spécifié, le pilote s’exécute avec un nom d’objet par défaut créé par le système d’e/s en fonction du nom du service.

Exemple : « DWDOM \ admin »

Cette propriété est héritée de Win32 _ BaseService.

State

Type de données : chaîne

Type d’accès : lecture/écriture

Qualificateurs : MappingStrings ("win32api | service structures | _ Status service | dwCurrentState"), DisplayName ("State")

État actuel du service de base.

Les valeurs sont :

Arrêté (« arrêté »)

Start Pending (« Start Pending »)

Arrêt en attente (« arrêt en attente »)

En cours d’exécution (« en cours d’exécution »)

Poursuite en attente ("continuer en attente")

Pause en attente ("pause en attente")

Suspendu (« suspendu »)

Inconnu ("inconnu")

Windows Server 2008 et Windows Vista : cette propriété est en lecture seule avant Windows 7 et Windows Server 2008 R2.

Cette propriété est héritée de Win32 _ BaseService.

État

Type de données : chaîne

Type d'accès : Lecture seule

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

État actuel de l’objet. Divers États opérationnels et inopérationnels peuvent être définis. Les États opérationnels sont les suivants : « OK », « détérioré » et « échec prévu » (un élément, tel qu’un lecteur de disque dur intelligent, peut fonctionner correctement, mais prédire une défaillance dans un avenir proche). Les États qui ne sont pas opérationnels sont les suivants : « erreur », « démarrage », « arrêt » et « service ». Le dernier, « service », peut s’appliquer pendant la réargentation en miroir d’un disque, le rechargement d’une liste d’autorisations utilisateur ou d’autres tâches administratives. Tous les travaux de ce type ne sont pas en ligne, mais l’élément géré n’est ni « OK », ni de l’un des autres États.

Cette propriété est héritée de CIM _ ManagedSystemElement.

Les valeurs sont :

OK (« OK »)

Erreur (« erreur »)

Détérioré (« détérioré »)

Inconnu ("inconnu")

Échec prévu (« échec prédit »)

Démarrage en cours (« démarrage »)

Arrêt en cours (« arrêt »)

Service (« service »)

Stressed (« stressed »)

Non récupéré (« non récupéré »)

Aucun contact (« aucun contact »)

Communication perdue (« inversée comm »)

SystemCreationClassName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : Propaged ("CIM _ System.CreationClassName"), _ clé CIM, DisplayName (" System Class Name ")

Nom de type du système qui héberge ce service.

Cette propriété est héritée du _ service CIM.

SystemName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : Propaged ("CIM _ System.Name"), _ clé CIM, DisplayName (" System Name ")

Nom du système qui héberge ce service.

Cette propriété est héritée du _ service CIM.

TagId

Type de données : UInt32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« win32api | service structures | query _ service _ config | DwTagId »), DisplayName (« ID de balise »)

Valeur de balise unique pour ce service dans le groupe. La valeur 0 (zéro) indique que le service n’a pas de balise. Une balise peut être utilisée pour ordonner le démarrage du service dans un groupe d’ordre de chargement en spécifiant un vecteur d’ordre des balises dans le registre à l’emplacement suivant :

HKEY _ _ \ \ \ Contrôle CurrentControlSet du système \ de l’ordinateur local GroupOrderList

Les balises sont uniquement évaluées pour les services de type démarrage du pilote du noyau et du pilote du système de fichiers qui ont des modes de démarrage ou de démarrage du système.

Cette propriété est héritée de Win32 _ BaseService.

WaitHint

Type de données : UInt32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« win32api | service structures | _ Status | dwWaitHint »), DisplayName (« temps d’attente estimé »)

Durée estimée, en millisecondes, pour une opération de démarrage, d’arrêt, de suspension ou de continuation en attente. Une fois le temps spécifié écoulé, le service effectue son prochain appel à la méthode SetServiceStatus avec une valeur de point de contrôle incrémentée ou une modification dans CurrentState. Si la durée spécifiée par WaitHint passe, si le point de contrôle n’a pas été incrémenté ou si CurrentState n’a pas changé, le gestionnaire de contrôle des services ou le programme de contrôle des services suppose qu’une erreur s’est produite.

Remarques

La classe de _ service Win32 est dérivée de Win32 _ BaseService.

La façon dont vous gérez un ordinateur spécifique dépend beaucoup du rôle joué par l’ordinateur. Par exemple, vous surveillez généralement les différents aspects d’un serveur DNS par rapport à un serveur DHCP. Bien qu’aucune propriété unique ne vous indique si un ordinateur particulier est un serveur de base de données, un serveur de messagerie ou un serveur multimédia, vous pouvez souvent identifier le rôle joué par un ordinateur en identifiant les services installés sur celui-ci.

Dans les grandes organisations, un seul des principaux services (tels que le courrier électronique) est susceptible d’être installé sur un seul ordinateur. il serait rare pour un serveur de messagerie de s’exécuter également en tant que serveur pour les fichiers du lecteur Microsoft® Windows media® technologies. Pour cette raison, l’identification d’un service installé sur un ordinateur peut aider à identifier le rôle de l’ordinateur sur le réseau. si le service Microsoft® Exchange Server est installé et en cours d’exécution sur un ordinateur, il est généralement possible de supposer que cet ordinateur fonctionne comme un serveur de messagerie.

Vous pouvez utiliser la classe WMI Win32 _ service pour énumérer les services installés sur un ordinateur. En outre, vous pouvez utiliser cette classe pour déterminer si ces services sont en cours d’exécution et pour retourner toutes les autres informations requises sur ce service et la manière dont il a été configuré.

une application de service est conforme aux règles d’interface du gestionnaire de contrôle des services (SCM) et peut être démarrée automatiquement par un utilisateur au démarrage du système via l’utilitaire du panneau de configuration des Services ou par une application qui utilise les fonctions de service incluses dans l’API Windows. Les services peuvent démarrer quand aucun utilisateur n’est connecté à l’ordinateur.

Un utilisateur qui se connecte à partir d’un ordinateur distant doit disposer du privilège de _ _ connexion SC Manager pour pouvoir énumérer cette classe. Pour plus d’informations, consultez sécurité des services et droits d’accès.

Exemples

La requête PS-WMI qui retourne le service « État » sur un groupe d’appareils exemple PowerShell dans la Galerie TechNet utilise le _ service Win32 pour créer une liste d’appareils à partir de Active Directory, puis interroger chaque appareil qui répond avec pingfor un service spécifique en cours d’exécution.

L’exemple PowerShell de rapport de serveur de la Galerie TechNet utilise le _ service Win32 pour rassembler des informations sur le serveur et les publier dans un document Word.

L’exemple de code VBScript suivant affiche tous les services actuellement installés.

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

L’exemple de code VBScript suivant décrit les services suspendus, en cours d’exécution et arrêtés sur l’ordinateur spécifié.

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

Le script perl suivant montre comment récupérer une liste de services en cours d’exécution à partir d’instances du _ service Win32.

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

L’exemple c suivant # utilise Microsoft. Management. infrastructure pour récupérer tous les services en cours d’exécution sur l’ordinateur 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();
        }
    

L' # exemple de code C suivant utilise l’espace de noms System. Management pour récupérer tous les services en cours d’exécution sur l’ordinateur local.

Notes

System. Management contient les classes d’origine utilisées pour accéder à WMI. Toutefois, ils sont considérés comme plus lents et ne sont généralement pas mis à l’échelle, ainsi que leurs équivalents 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();


        }

Configuration requise

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

Voir aussi

_BaseService Win32

Classes du système d’exploitation

Tâches WMI : services