Dela via


ServiceInstall Table

Tabellen ServiceInstall används för att installera en tjänst och har följande kolumner.

Spalt Typ Nyckel Nullbar
ServiceInstall identifierare Y N
Namn formaterad N N
DisplayName formaterad N Y
ServiceType DoubleInteger N N
StartType DoubleInteger N N
ErrorControl DoubleInteger N N
LoadOrderGroup formaterad N Y
Beroenden formaterad N Y
StartName formaterad N Y
Lösenord formaterad N Y
Argument formaterad N Y
Komponent_ identifierare N N
Beskrivning formaterad N Y

 

Kolumner

ServiceInstall

Det här är den primära nyckeln för tabellen.

namn

Den här kolumnen är strängen som ger tjänstnamnet som ska installeras. Strängen har en maximal längd på 256 tecken. Service Control Manager-databasen bevarar fallet med tecknen i tjänstnamnet, men jämförelser av tjänstnamn är skiftlägesokänsliga. Snedstreck (/) och snedstreck (\) är ogiltiga tjänstnamnstecken.

DisplayName

Den här kolumnen är den localizable sträng som användargränssnittsprogram använder för att identifiera tjänsten. Strängen har en maximal längd på 256 tecken. Tjänstkontrollhanteraren bevarar visningsnamnets skiftläge, men jämförelsen av visningsnamn är skiftlägesokänsliga.

ServiceType

Den här kolumnen är en uppsättning bitflaggor som anger typ av tjänst. En av följande tjänsttyper måste anges i den här kolumnen.

Typ av tjänst Värde Beskrivning
SERVICE_WIN32_OWN_PROCESS 0x00000010 En Microsoft Win32-tjänst som kör sin egen process.
SERVICE_WIN32_SHARE_PROCESS 0x00000020 En Win32-tjänst som delar en process.
SERVICE_INTERACTIVE_PROCESS 0x00000100 En Win32-tjänst som interagerar med skrivbordet. Det här värdet kan inte användas ensamt och måste läggas till i någon av de två föregående typerna. Kolumnen StartName måste vara inställd på LocalSystem eller null när du använder den här flaggan.

 

Följande typer av tjänster stöds inte.

Typ av tjänst Värde Beskrivning
SERVICE_KERNEL_DRIVER 0x00000001 En drivrutinstjänst.
SERVICE_FILE_SYSTEM_DRIVER 0x00000002 En filsystemdrivrutinstjänst.

 

StartType

Den här kolumnen är en uppsättning bitflaggor som anger när tjänsten ska startas. En av följande typer av tjänststart måste anges i den här kolumnen.

Typ av tjänststart Värde Beskrivning
SERVICE_AUTO_START 0x00000002 En tjänst startar när systemet startas.
SERVICE_DEMAND_START 0x00000003 En tjänst startar när tjänstkontrollhanteraren anropar funktionen StartService.
SERVICE_DISABLED 0x00000004 Anger en tjänst som inte längre kan startas.

 

Windows Installer kan inte använda alternativen SERVICE_BOOT_START och SERVICE_SYSTEM_START.

ErrorControl

Den här kolumnen anger den åtgärd som utförs av startprogrammet om tjänsten inte startar under starten. Dessa värden påverkar ServiceControl StartService-händelser för installerade tjänster. En av följande flaggor för felkontroll måste anges i den här kolumnen.

Om du lägger till konstanten msidbServiceInstallErrorControlVital (värde = 0x08000) till flaggorna i följande tabell anger du att den övergripande installationen ska misslyckas om tjänsten inte kan installeras i systemet.

Flagga för felkontroll Värde Startprogrammets åtgärd
SERVICE_ERROR_IGNORE 0x00000000 Loggar felet och fortsätter med startåtgärden.
SERVICE_ERROR_NORMAL 0x00000001 Loggar felet, visar en meddelanderuta och fortsätter startåtgärden.
SERVICE_ERROR_CRITICAL 0x00000003 Loggar felet om det är möjligt och systemet startas om med den senaste konfigurationen som är känd för att vara bra. Om den senaste fungerande konfigurationen startas misslyckas startåtgärden.

 

LoadOrderGroup

Den här kolumnen innehåller strängen som namnger den inläsningsordningsgrupp som tjänsten är medlem i. Ange null eller en tom sträng om tjänsten inte tillhör en grupp.

beroenden

Den här kolumnen är en lista över namn på tjänster eller inläsningsordningsgrupper som systemet måste starta före den här tjänsten. Avgränsa namn i listan med Nulls. Om tjänsten inte har några beroenden anger du Null eller en tom sträng. Använd syntaxen [~] för att infoga en Null. Beroende av en grupp innebär att den här tjänsten kan köras om minst en medlem i gruppen körs efter ett försök att starta alla medlemmar i gruppen.

Om du till exempel vill kräva att systemet startar service1 och service2, innan du startar tjänsten som anges i kolumnen ServiceInstall, anger du service1[~]service2[~][~] i kolumnen Beroenden. Identifierarna service1 och service2 måste antingen finnas i den primära nyckeln i tabellen eller vara namnet på den tjänst som redan är installerad.

Du måste ha prefixgruppnamn med + så att de kan skiljas från ett tjänstnamn. Om du vill kräva att systemet startar service1 och minst en medlem i beställningsgruppen MyGroup innan du startar tjänsten som anges i kolumnen ServiceInstall anger du service1[~]+MyGroup[~][~].

StartName

Tjänsten loggas in som det namn som anges av strängen i den här kolumnen. Om tjänsttypen är SERVICE_WIN32_OWN_PROCESS använda ett kontonamn i formuläret: DomainName\UserName. Om kontot tillhör den inbyggda domänen är det tillåtet att ange .\UserName. LocalSystem-kontot måste användas om typen av tjänst är SERVICE_WIN32_SHARE_PROCESS eller SERVICE_INTERACTIVE_PROCESS. Funktionen CreateService använder LocalSystem-kontot om StartName anges som null och de flesta tjänster lämnar därför den här kolumnen tom.

lösenord

Den här strängen är lösenordet till det kontonamn som anges i kolumnen StartName. Observera att användaren måste ha behörighet att logga in som en tjänst. Tjänsten har inget lösenord om StartName är null eller en tom sträng. Startnamnet för LocalSystem är null och därför är lösenordet i den här instansen null, så de flesta tjänster lämnar den här kolumnen tom.

Observera att när du har raderat en tjänst som har installerats med ett användarnamn och lösenord kan installationsprogrammet inte återställa tjänsten utan att först använda en anpassad åtgärd för att hämta lösenordet. Installationsprogrammet kan hämta all nödvändig information om tjänsten förutom lösenordet som lagras i en skyddad del av systemet. Den anpassade åtgärden hämtar lösenordet genom att fråga användaren, läsa en egenskap från databasen eller läsa en fil. Den anpassade åtgärden måste sedan anropa ChangeServiceConfigför att ange lösenordet innan du installerar om tjänsten.

Windows Installer skriver inte värdet som anges i fältet Lösenord i loggfilen.

argument

Den här kolumnen innehåller alla kommandoradsargument eller egenskaper som krävs för att köra tjänsten.

Component_

Extern nyckel till kolumn ett av -komponenttabellen. Observera att KeyPath för den här komponenten måste vara den körbara filen för tjänsten för att kunna installera den här tjänsten med hjälp av tabellen InstallService.

beskrivning

Den här kolumnen innehåller en beskrivning som kan lokaliseras för den tjänst som konfigureras. Om den här kolumnen lämnas tom använder installationsprogrammet den befintliga beskrivningen av tjänsten om det finns någon. Mer information finns i SERVICE_DESCRIPTION i Microsoft Windows Software Development Kit (SDK). Om du vill radera en befintlig beskrivning anger du "[~]" i den här kolumnen. Detta resulterar i en tom beskrivning för antingen en ny eller befintlig tjänst.

Anmärkningar

Åtgärden InstallServices i sekvenstabeller bearbetar informationen i den här tabellen. Information om hur du använder sekvenstabellerfinns i Använda en sekvenstabell.

Den här tabellen innehåller de flesta parametrarna för funktionen Win32 CreateService.

Även om det är möjligt att använda användargränssnittet för att ange att en tjänst ska installeras som run-from-source, stöder installationsprogrammet faktiskt inte den här typen av installation. Tjänster som körs med behörighetsnivån för det lokala systemet måste installeras för att köras från den lokala hårddisken. Undvik att installera tjänster som personifierar en viss användares behörigheter eftersom detta kan skriva säkerhetsdata till en logg eller systemregistret. Detta kan potentiellt skapa ett säkerhetsproblem, en lösenordskonflikt eller förlust av konfigurationsdata när systemet startas om.

Om du vill ta bort en tjänst under en avinstallation måste det finnas en motsvarande post för tjänsten i tabellen ServiceControl och flaggan msidbServiceControlEventUninstallDelete måste visas i kolumnen Händelse. Installationsprogrammet tar inte bort en tjänst i tabellen ServiceInstall under avinstallationen utan den här posten i tabellen ServiceControl.

Information om hur du skyddar en tjänst finns i MsiLockPermissionsEx Table.

Validering

ICE03
ICE06
ICE32
ICE45
ICE46
ICE66
ICE69