Freigeben über


ServiceInstall-Tabelle

Die ServiceInstall-Tabelle wird verwendet, um einen Dienst zu installieren und enthält die folgenden Spalten.

Spalte Art Schlüssel Nullable
ServiceInstall Bezeichner Y N
Name formatierte N N
DisplayName formatierte N Y
ServiceType DoubleInteger- N N
StartType DoubleInteger- N N
ErrorControl DoubleInteger- N N
LoadOrderGroup formatierte N Y
Abhängigkeiten formatierte N Y
StartName formatierte N Y
Passwort formatierte N Y
Argumente formatierte N Y
Bestandteil_ Bezeichner N N
Beschreibung formatierte N Y

 

Spalten

ServiceInstall

Dies ist der Primärschlüssel für die Tabelle.

Name

Diese Spalte ist die Zeichenfolge, die den Zu installierenden Dienstnamen angibt. Die Zeichenfolge hat maximal 256 Zeichen. Die Datenbank des Dienststeuerungs-Managers behält die Groß-/Kleinschreibung der Zeichen im Dienstnamen bei, bei Vergleichen von Dienstnamen wird jedoch die Groß-/Kleinschreibung nicht beachtet. Schrägstrich (/) und Umgekehrter Schrägstrich (\) sind ungültige Dienstnamenzeichen.

DisplayName

Diese Spalte ist die lokalisierbare Zeichenfolge, die von Benutzeroberflächenprogrammen zum Identifizieren des Diensts verwendet wird. Die Zeichenfolge hat maximal 256 Zeichen. Der Dienststeuerungs-Manager behält die Groß-/Kleinschreibung des Anzeigenamens bei, bei Anzeigenamenvergleichen wird jedoch die Groß-/Kleinschreibung nicht beachtet.

ServiceType

Diese Spalte ist eine Reihe von Bitkennzeichnungen, die den Diensttyp angeben. Einer der folgenden Diensttypen muss in dieser Spalte angegeben werden.

Diensttyp Wert Beschreibung
SERVICE_WIN32_OWN_PROCESS 0x00000010 Ein Microsoft Win32-Dienst, der einen eigenen Prozess ausführt.
SERVICE_WIN32_SHARE_PROCESS 0x00000020 Ein Win32-Dienst, der einen Prozess gemeinsam verwendet.
SERVICE_INTERACTIVE_PROCESS 0x00000100 Ein Win32-Dienst, der mit dem Desktop interagiert. Dieser Wert kann nicht allein verwendet werden und muss einem der beiden vorherigen Typen hinzugefügt werden. Die Spalte "StartName" muss bei Verwendung dieses Flags auf "LocalSystem" oder "NULL" festgelegt werden.

 

Die folgenden Diensttypen werden nicht unterstützt.

Diensttyp Wert Beschreibung
SERVICE_KERNEL_DRIVER 0x00000001 Ein Treiberdienst.
SERVICE_FILE_SYSTEM_DRIVER 0x00000002 Ein Dateisystemtreiberdienst.

 

StartType

Diese Spalte ist eine Reihe von Bitkennzeichnungen, die angeben, wann der Dienst gestartet werden soll. Eine der folgenden Dienststarttypen muss in dieser Spalte angegeben werden.

Typ des Dienststarts Wert Beschreibung
SERVICE_AUTO_START 0x00000002 Ein Dienst wird während des Systemstarts gestartet.
SERVICE_DEMAND_START 0x00000003 Ein Dienst wird gestartet, wenn der Dienststeuerungs-Manager die StartService--Funktion aufruft.
SERVICE_DISABLED 0x00000004 Gibt einen Dienst an, der nicht mehr gestartet werden kann.

 

Windows Installer kann die optionen SERVICE_BOOT_START und SERVICE_SYSTEM_START nicht verwenden.

ErrorControl

Diese Spalte gibt die Aktion an, die vom Startprogramm ausgeführt wird, wenn der Dienst beim Start nicht gestartet werden kann. Diese Werte wirken sich auf die ServiceControl StartService-Ereignisse für installierte Dienste aus. Eines der folgenden Fehlersteuerelement-Flags muss in dieser Spalte angegeben werden.

Das Hinzufügen der Konstante msidbServiceInstallErrorControlVital (Wert = 0x08000) zu den Flags in der folgenden Tabelle gibt an, dass die gesamtinstallation fehlschlagen soll, wenn der Dienst nicht im System installiert werden kann.

Fehlersteuerungskennzeichnung Wert Aktion des Startprogramms
SERVICE_ERROR_IGNORE 0x00000000 Protokolliert den Fehler und setzt den Startvorgang fort.
SERVICE_ERROR_NORMAL 0x00000001 Protokolliert den Fehler, zeigt ein Meldungsfeld an und setzt den Startvorgang fort.
SERVICE_ERROR_CRITICAL 0x00000003 Protokolliert den Fehler, falls möglich, und das System wird neu gestartet, wobei die letzte bekannte Konfiguration gut ist. Wenn die zuletzt bekannte gute Konfiguration gestartet wird, schlägt der Startvorgang fehl.

 

LoadOrderGroup

Diese Spalte enthält die Zeichenfolge, die die Ladereihenfolgegruppe benennt, deren Mitglied dieser Dienst ist. Geben Sie NULL oder eine leere Zeichenfolge an, wenn der Dienst nicht zu einer Gruppe gehört.

Abhängigkeiten

Diese Spalte ist eine Liste der Namen von Diensten oder Ladenreihenfolgegruppen, die das System vor diesem Dienst starten muss. Trennen Sie Namen in der Liste durch Nullen. Wenn der Dienst keine Abhängigkeiten aufweist, geben Sie NULL oder eine leere Zeichenfolge an. Verwenden Sie die Syntax [~] zum Einfügen eines Null-Werts. Abhängigkeit von einer Gruppe bedeutet, dass dieser Dienst ausgeführt werden kann, wenn mindestens ein Mitglied der Gruppe ausgeführt wird, nachdem versucht wurde, alle Mitglieder der Gruppe zu starten.

Wenn Sie z. B. vor dem Starten des diensts in der Spalte "ServiceInstall" den Dienst starten möchten, geben Sie "service1[~]service2[~][~][~][~]" in die Spalte "Abhängigkeiten" ein. Der Bezeichner "Service1" und "service2" müssen entweder im Primärschlüssel der Tabelle oder im Namen des bereits installierten Diensts vorkommen.

Sie müssen Gruppennamen mit + voranstellen, damit sie von einem Dienstnamen unterschieden werden können. Um vor dem Starten des Diensts "Service1" und mindestens einem Mitglied der Sortiergruppe "MyGroup" vor dem Starten des diensts in der Spalte "ServiceInstall" anzugeben, geben Sie service1[~]+MyGroup[~][~] ein.

StartName

Der Dienst wird als Der Name der Zeichenfolge in dieser Spalte protokolliert. Wenn der Diensttyp SERVICE_WIN32_OWN_PROCESS einen Kontonamen im Formular verwenden: DomainName\UserName. Wenn das Konto zur integrierten Domäne gehört, darf es .\UserName angeben. Das LocalSystem-Konto muss verwendet werden, wenn der Diensttyp SERVICE_WIN32_SHARE_PROCESS oder SERVICE_INTERACTIVE_PROCESS ist. Die CreateService--Funktion verwendet das LocalSystem-Konto, wenn StartName als NULL angegeben ist und die meisten Dienste daher diese Spalte leer lassen.

Kennwort

Diese Zeichenfolge ist das Kennwort für den Kontonamen, der in der Spalte "StartName" angegeben ist. Beachten Sie, dass der Benutzer über berechtigungen zum Anmelden als Dienst verfügen muss. Der Dienst hat kein Kennwort, wenn StartName null oder eine leere Zeichenfolge ist. Der Startname von LocalSystem ist null, und daher ist das Kennwort in dieser Instanz null, sodass die meisten Dienste diese Spalte leer lassen.

Beachten Sie, dass das Installationsprogramm nach dem Löschen eines Diensts, der mit einem Benutzernamen und Kennwort installiert wurde, den Dienst nicht zurücksetzen kann, ohne zuerst eine benutzerdefinierte Aktion zum Abrufen des Kennworts zu verwenden. Das Installationsprogramm kann alle erforderlichen Informationen zum Dienst abrufen, mit Ausnahme des Kennworts, das in einem geschützten Teil des Systems gespeichert ist. Die benutzerdefinierte Aktion erhält das Kennwort, indem der Benutzer aufgefordert wird, eine Eigenschaft aus der Datenbank zu lesen oder eine Datei zu lesen. Die benutzerdefinierte Aktion muss dann ChangeServiceConfigaufrufen, um das Kennwort anzugeben, bevor der Dienst neu installiert wird.

Windows Installer schreibt nicht den Wert, der in das Feld "Kennwort" eingegeben wurde, in die Protokolldatei.

Argumente

Diese Spalte enthält alle Befehlszeilenargumente oder -eigenschaften, die zum Ausführen des Diensts erforderlich sind.

Component_

Externer Schlüssel zur Spalte 1 der Komponententabelle. Beachten Sie, dass zum Installieren dieses Diensts mithilfe der InstallService-Tabelle der KeyPath für diese Komponente die ausführbare Datei für den Dienst sein muss.

Beschreibung

Diese Spalte enthält eine lokalisierbare Beschreibung für den zu konfigurierenden Dienst. Wenn diese Spalte leer bleibt, verwendet das Installationsprogramm die vorhandene Beschreibung des Diensts, falls vorhanden. Weitere Informationen finden Sie unter SERVICE_DESCRIPTION im Microsoft Windows Software Development Kit (SDK). Um eine vorhandene Beschreibung zu löschen, geben Sie in dieser Spalte "[~]" ein. Dies führt zu einer leeren Beschreibung für einen neuen oder vorhandenen Dienst.

Bemerkungen

Die InstallServices Aktion in Sequenztabellen verarbeitet die Informationen in dieser Tabelle. Informationen zur Verwendung von Sequenztabellenfinden Sie unter Verwenden einer Sequenztabelle.

Diese Tabelle enthält die meisten Parameter für die Win32-CreateService--Funktion.

Obwohl es möglich ist, die Benutzeroberfläche zu verwenden, um anzugeben, dass ein Dienst als Auslaufquelle installiert wird, unterstützt das Installationsprogramm diesen Installationstyp nicht. Dienste, die mit der Berechtigungsstufe des lokalen Systems ausgeführt werden, müssen auf der lokalen Festplatte installiert werden. Vermeiden Sie die Installation von Diensten, die die Berechtigungen eines bestimmten Benutzers darstellen, da dadurch Sicherheitsdaten in ein Protokoll oder in die Systemregistrierung geschrieben werden können. Dies kann möglicherweise ein Sicherheitsproblem, ein Kennwortkonflikt oder den Verlust von Konfigurationsdaten verursachen, wenn das System neu gestartet wird.

Um einen Dienst während einer Deinstallation zu löschen, muss ein entsprechender Datensatz für den Dienst in der ServiceControl-Tabelle vorhanden sein, und die msidbServiceControlEventUninstallDelete Flag muss in der Spalte "Ereignis" angezeigt werden. Das Installationsprogramm löscht keinen Dienst in der ServiceInstall-Tabelle während der Deinstallation ohne diesen Eintrag in der Tabelle ServiceControl.

Informationen zum Sichern eines Diensts finden Sie in der MsiLockPermissionsEx Table.

Validierung

ICE03-
ICE06-
ICE32-
ICE45-
ICE46-
ICE66-
ICE69-