Share via


Create method of the Win32_Service class (CIMWin32 WMI Providers)

La méthode Créer une classe WMI crée un nouveau service système.

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 Create(
  [in] string  Name,
  [in] string  DisplayName,
  [in] string  PathName,
  [in] uint8   ServiceType,
  [in] uint8   ErrorControl,
  [in] string  StartMode,
  [in] boolean DesktopInteract,
  [in] string  StartName,
  [in] string  StartPassword,
  [in] string  LoadOrderGroup,
  [in] string  LoadOrderGroupDependencies[],
  [in] string  ServiceDependencies[]
);

Paramètres

Nom [in]

Nom du service à installer sur la méthode Create . La longueur maximale de chaîne est de 256 caractères. La base de données Service Control Manager conserve la casse des caractères, mais les comparaisons de noms de service ne respectent toujours pas la casse. Les barres obliques (/) et les barres obliques doubles (\) sont des caractères de nom de service non valides.

DisplayName [in]

Nom d’affichage du service. Cette chaîne a une longueur maximale de 256 caractères. Le nom est conservé selon la casse dans le Gestionnaire de contrôle de service. Les comparaisons DisplayName ne respectent toujours pas la casse.

Contraintes : accepte la même valeur que le paramètre Name .

Exemple : « Atdisk ».

PathName [in]

Chemin complet du fichier exécutable qui implémente le service.

Exemple : « \SystemRoot\System32\drivers\afd.sys ».

ServiceType [in]

Type de services fournis aux processus qui les appellent.

1 (0x1)

Pilote de noyau

2 (0x2)

Pilote de système de fichiers

4 (0x4)

Adaptateur

8 (0x8)

Pilote recognizer

16 (0x10)

Processus propre

32 (0x20)

Processus de partage

256 (0x100)

Processus interactif

ErrorControl [in]

Gravité de l’erreur si la méthode Create ne parvient pas à démarrer. La valeur indique l’action effectuée par le programme de démarrage en cas d’échec. Toutes les erreurs sont enregistrées par le système.

0

L'utilisateur n'est pas notifié.

1

L'utilisateur est notifié.

2

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

3

Le système tente de commencer avec une bonne configuration.

StartMode [in]

Mode démarrer du service de base Windows.

Démarrage

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

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.

Automatique

Le service doit être démarré automatiquement par le Gestionnaire de contrôle de service lors du démarrage du système.

Manuel

Service à démarrer par le Gestionnaire de contrôle de service lorsqu’un processus appelle la méthode StartService .

Désactivé

Service qui ne peut plus être démarré.

DesktopInteract [in]

Si la valeur est true, le service peut créer ou communiquer avec des fenêtres sur le bureau.

StartName [in]

Nom du compte sous lequel le service s’exécute. Selon le type de service, le nom du compte peut être au format DomainName\Username ou Nom d’utilisateur principal (UPN) (Username@DomainName). Le processus de service est journalisé à l’aide de l’un de ces deux formulaires lorsqu’il s’exécute. Si le compte appartient au domaine intégré, .\Username peut être spécifié. Si null est spécifié, le service est connecté en tant que compte LocalSystem. Pour un noyau ou des pilotes au niveau du système, StartName contient le nom de l’objet du pilote (c’est-à-dire, \FileSystem\Rdr ou \Driver\Xns) que le système d’entrée et de sortie (E/S) utilise pour charger le pilote de périphérique. 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\Administration.

StartPassword [in]

Mot de passe du nom de compte spécifié par le paramètre StartName . Spécifiez NULL si vous ne modifiez pas le mot de passe. Spécifiez une chaîne vide si le service ne possède pas de mot de passe.

LoadOrderGroup [in]

Nom du groupe associé au nouveau service. Les groupes d’ordres de chargement sont contenus dans le Registre et déterminent la séquence dans laquelle les services sont chargés dans le système d’exploitation. Si le pointeur a la valeur NULL ou s’il pointe vers une chaîne vide, le service n’appartient pas à un groupe. Les dépendances entre les groupes doivent être répertoriées dans le paramètre LoadOrderGroupDependencies . Les services de la liste des groupes d’ordre de chargement sont démarrés en premier, suivis des services dans les groupes qui ne figurent pas dans la liste des groupes d’ordre de chargement, suivis des services qui n’appartiennent pas à un groupe. Le Registre dispose d’une liste de groupes d’ordre de chargement situés à l’adresse suivante :

HKEY_LOCAL_MACHINE\Système\Currentcontrolset\Contrôle\ServiceGroupOrder

LoadOrderGroupDependencies [in]

Tableau de groupes d’ordre de charge qui doivent démarrer avant ce service. Chaque élément du tableau est délimité par null et la liste est terminée par deux valeurs NULL . Dans Visual Basic ou un script, vous pouvez passer un vbArray. Si le pointeur a la valeur NULL ou s’il pointe vers une chaîne vide, le service n’a aucune dépendance. Les noms de groupes doivent être précédés du caractère SC_GROUP_IDENTIFIER (défini dans le fichier Winsvc.h) pour le différencier d’un nom de service, car les services et les groupes de services partagent le même espace de noms. La dépendance à un groupe signifie que ce service peut s’exécuter si au moins un membre du groupe s’exécute après une tentative de démarrage de tous les membres du groupe.

ServiceDependencies [in]

Tableau qui contient les noms des services qui doivent démarrer avant le démarrage de ce service. Chaque élément du tableau est délimité par null et la liste est terminée par deux valeurs NULL . Dans Visual Basic ou un script, vous pouvez passer un vbArray. Si le pointeur a la valeur NULL ou s’il pointe vers une chaîne vide, le service n’a aucune dépendance. La dépendance à un service signifie que ce service ne peut s’exécuter que si le service dont il dépend est en cours d’exécution.

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 (propriété State de la classe Win32_BaseService ) 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 lors du démarrage du service.

9

Le chemin du 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 lorsqu’il démarre.

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

Les services sont généralement installés de deux manières : soit dans le cadre de l’installation du système d’exploitation, soit à l’aide d’un programme d’installation fourni par le développeur de services. Toutefois, certains services, en particulier ceux créés en interne, peuvent ne pas avoir de programme d’installation. Dans ces cas, vous pouvez utiliser la méthode Create pour installer les services par programmation.

Malgré son nom, la méthode Create ne crée pas réellement de service ; il installe simplement un service existant. Pour utiliser cette commande, vous devez copier le fichier exécutable du service sur un ordinateur, puis utiliser Create pour installer le service.

La méthode Create est similaire à la méthode Change . Dans les deux cas, les propriétés du service sont passées en tant que paramètres à la méthode . Comme pour les paramètres utilisés avec la méthode Change , l’ordre dans lequel ces paramètres sont passés est très important.

Le paramètre LoadOrderGroup représente un regroupement de services système définissant des dépendances d’exécution. Les services doivent être lancés dans l’ordre spécifié par le groupe d’ordre de chargement, car les services dépendent les uns des autres. Ces services dépendants nécessitent la présence des services antécédents pour fonctionner correctement.

Exemples

Le VBScript suivant installe un service nommé DbService

Const OWN_PROCESS = 16
Const NOT_INTERACTIVE = True
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objService = objWMIService.Get("Win32_BaseService")
errReturn = objService.Create ("DbService", "Personnel Database", _
"c:\windows\system32\db.exe", OWN_PROCESS ,2 ,"Automatic" , _
 NOT_INTERACTIVE ,".\LocalSystem" ,"")

Spécifications

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

Voir aussi

Classes du système d’exploitation

Win32_Service

Tâches WMI : Services