ServiceInstall-tabel
De tabel ServiceInstall wordt gebruikt om een service te installeren en bevat de volgende kolommen.
Kolom | Type | Sleutel | Null-waarde |
---|---|---|---|
ServiceInstall | id- | Y | N |
Naam | opgemaakte | N | N |
DisplayName | opgemaakte | N | Y |
ServiceType | DoubleInteger- | N | N |
StartType | DoubleInteger- | N | N |
ErrorControl | DoubleInteger- | N | N |
LoadOrderGroup | opgemaakte | N | Y |
Afhankelijkheden | opgemaakte | N | Y |
StartName | opgemaakte | N | Y |
Wachtwoord | opgemaakte | N | Y |
Argumenten | opgemaakte | N | Y |
Bestanddeel_ | id- | N | N |
Beschrijving | opgemaakte | N | Y |
Kolommen
-
ServiceInstall
-
Dit is de primaire sleutel voor de tabel.
-
naam
-
Deze kolom is de tekenreeks die de servicenaam geeft die moet worden geïnstalleerd. De tekenreeks heeft een maximale lengte van 256 tekens. De servicebeheerdatabase behoudt het hoofdlettergebruik van de tekens in de servicenaam, maar vergelijkingen van servicenamen zijn niet hoofdlettergevoelig. Slash (/) en back-slash (\) zijn ongeldige servicenaamtekens.
-
DisplayName
-
Deze kolom is de lokaliseerbare tekenreeks die door gebruikersinterfaceprogramma's wordt gebruikt om de service te identificeren. De tekenreeks heeft een maximale lengte van 256 tekens. De servicebeheerbeheerder behoudt het geval van de weergavenaam, maar vergelijkingen van weergavenamen zijn niet hoofdlettergevoelig.
-
ServiceType
-
Deze kolom is een set bitvlagken waarmee het type service wordt opgegeven. Een van de volgende servicetypen moet worden opgegeven in deze kolom.
Type service Waarde Beschrijving SERVICE_WIN32_OWN_PROCESS 0x00000010 Een Microsoft Win32-service die een eigen proces uitvoert. SERVICE_WIN32_SHARE_PROCESS 0x00000020 Een Win32-service die een proces deelt. SERVICE_INTERACTIVE_PROCESS 0x00000100 Een Win32-service die communiceert met het bureaublad. Deze waarde kan niet alleen worden gebruikt en moet worden toegevoegd aan een van de twee vorige typen. De kolom StartName moet worden ingesteld op LocalSystem of null wanneer u deze vlag gebruikt. De volgende typen services worden niet ondersteund.
Type service Waarde Beschrijving SERVICE_KERNEL_DRIVER 0x00000001 Een stuurprogrammaservice. SERVICE_FILE_SYSTEM_DRIVER 0x00000002 Een bestandssysteemstuurprogrammaservice. -
StartType
-
Deze kolom is een set bitvlagken die aangeven wanneer de service moet worden gestart. Een van de volgende typen servicestart moet worden opgegeven in deze kolom.
Type service starten Waarde Beschrijving SERVICE_AUTO_START 0x00000002 Een service wordt gestart tijdens het opstarten van het systeem. SERVICE_DEMAND_START 0x00000003 Een service wordt gestart wanneer de Service Control Manager de StartService functie aanroept. SERVICE_DISABLED 0x00000004 Hiermee geeft u een service op die niet meer kan worden gestart. Windows Installer kan de opties SERVICE_BOOT_START en SERVICE_SYSTEM_START niet gebruiken.
-
ErrorControl
-
Deze kolom geeft de actie op die door het opstartprogramma wordt uitgevoerd als de service niet kan worden gestart tijdens het opstarten. Deze waarden zijn van invloed op de ServiceControl StartService-gebeurtenissen voor geïnstalleerde services. Een van de volgende vlagen voor foutbeheer moet worden opgegeven in deze kolom.
Als u de constante msidbServiceInstallErrorControlVital (waarde = 0x08000) toevoegt aan de vlaggen in de volgende tabel, geeft u aan dat de algehele installatie moet mislukken als de service niet in het systeem kan worden geïnstalleerd.
Vlag voor foutbeheer Waarde Actie van het opstartprogramma SERVICE_ERROR_IGNORE 0x00000000 Registreert de fout en gaat door met de opstartbewerking. SERVICE_ERROR_NORMAL 0x00000001 Registreert de fout, geeft een berichtvak weer en vervolgt de opstartbewerking. SERVICE_ERROR_CRITICAL 0x00000003 Registreert de fout indien mogelijk en het systeem wordt opnieuw opgestart met de laatste configuratie die bekend is dat het goed is. Als de laatst bekende goede configuratie wordt gestart, mislukt de opstartbewerking. -
LoadOrderGroup
-
Deze kolom bevat de tekenreeks met de namen van de groep voor het ordenen van de belasting waarvan deze service lid is. Geef null of een lege tekenreeks op als de service niet tot een groep behoort.
-
afhankelijkheden
-
Deze kolom is een lijst met namen van services of laadvolgordegroepen die het systeem moet starten vóór deze service. Scheid namen in de lijst door Nulls. Als de service geen afhankelijkheden heeft, geeft u Null of een lege tekenreeks op. Gebruik de syntaxis [~] om een null in te voegen. Afhankelijk van een groep betekent dat deze service kan worden uitgevoerd als ten minste één lid van de groep wordt uitgevoerd na een poging om alle leden van de groep te starten.
Als u bijvoorbeeld wilt vereisen dat de systeemservice1 en service2 starten voordat u de service start die wordt vermeld in de kolom ServiceInstall, voert u service1[~]service2[~][~] in de kolom Afhankelijkheden in. De id-service1 en service2 moeten zich in de primaire sleutel van de tabel bevinden of de naam zijn van de service die al is geïnstalleerd.
U moet groepsnamen voorvoegsel voorzien van + zodat ze kunnen worden onderscheiden van een servicenaam. Als u wilt vereisen dat de systeemservice1 en ten minste één lid van de bestelgroep MyGroup starten voordat u de service start die wordt vermeld in de kolom ServiceInstall, voert u service1[~]+MyGroup[~][~] in.
-
StartName
-
De service wordt aangemeld als de naam die wordt opgegeven door de tekenreeks in deze kolom. Als het servicetype is SERVICE_WIN32_OWN_PROCESS een accountnaam gebruiken in de vorm: DomainName\UserName. Als het account deel uitmaakt van het ingebouwde domein, mag u .\UserName opgeven. Het LocalSystem-account moet worden gebruikt als het type service is SERVICE_WIN32_SHARE_PROCESS of SERVICE_INTERACTIVE_PROCESS. De functie CreateService maakt gebruik van het LocalSystem-account als StartName is opgegeven als null en de meeste services laten deze kolom daarom leeg.
-
wachtwoord
-
Deze tekenreeks is het wachtwoord voor de accountnaam die is opgegeven in de kolom StartName. Houd er rekening mee dat de gebruiker machtigingen moet hebben om zich aan te melden als een service. De service heeft geen wachtwoord als StartName null of een lege tekenreeks is. De startnaam van LocalSystem is null en daarom is het wachtwoord in dit exemplaar null, dus de meeste services laten deze kolom leeg.
Nadat u een service hebt verwijderd die is geïnstalleerd met een gebruikersnaam en wachtwoord, kan het installatieprogramma de service niet terugdraaien zonder eerst een aangepaste actie te gebruiken om het wachtwoord op te halen. Het installatieprogramma kan alle benodigde informatie over de service verkrijgen, behalve het wachtwoord, dat is opgeslagen in een beveiligd deel van het systeem. De aangepaste actie verkrijgt het wachtwoord door de gebruiker te vragen een eigenschap uit de database te lezen of een bestand te lezen. De aangepaste actie moet vervolgens ChangeServiceConfigaanroepen om het wachtwoord op te geven voordat de service opnieuw wordt geïnstalleerd.
Windows Installer schrijft de waarde die is ingevoerd in het veld Wachtwoord niet in het logboekbestand.
-
argumenten
-
Deze kolom bevat opdrachtregelargumenten of eigenschappen die nodig zijn om de service uit te voeren.
-
Component_
-
Externe sleutel naar kolom een van de componenttabel. Houd er rekening mee dat als u deze service wilt installeren met behulp van de tabel InstallService, het KeyPath voor dit onderdeel het uitvoerbare bestand voor de service moet zijn.
-
beschrijving van
-
Deze kolom bevat een lokaliseerbare beschrijving voor de service die wordt geconfigureerd. Als deze kolom leeg blijft, gebruikt het installatieprogramma de bestaande beschrijving van de service als deze bestaat. Zie SERVICE_DESCRIPTION in de Microsoft Windows Software Development Kit (SDK) voor meer informatie. Als u een bestaande beschrijving wilt wissen, voert u '[~]' in deze kolom in. Dit resulteert in een lege beschrijving voor een nieuwe of bestaande service.
Opmerkingen
De actie InstallServices in reekstabellen de informatie in deze tabel verwerkt. Zie Using a Sequence Tablevoor meer informatie over het gebruik van reekstabellen.
Deze tabel bevat de meeste parameters voor de functie Win32 CreateService.
Hoewel het mogelijk is om de gebruikersinterface te gebruiken om op te geven dat een service moet worden geïnstalleerd als run-from-source, biedt het installatieprogramma geen ondersteuning voor dit type installatie. Services die worden uitgevoerd met het bevoegdheidsniveau van het lokale systeem, moeten worden geïnstalleerd om te worden uitgevoerd vanaf de lokale harde schijf. Vermijd het installeren van services die de bevoegdheden van een bepaalde gebruiker imiteren, omdat dit beveiligingsgegevens naar een logboek of het systeemregister kan schrijven. Dit kan mogelijk een beveiligingsprobleem, wachtwoordconflict of het verlies van configuratiegegevens veroorzaken wanneer het systeem opnieuw wordt opgestart.
Als u een service wilt verwijderen tijdens het verwijderen, moet er een bijbehorende record voor de service in de ServiceControl-tabel staan en moet de vlag msidbServiceControlEventUninstallDelete worden weergegeven in de kolom Gebeurtenis. Het installatieprogramma verwijdert geen service in de tabel ServiceInstall tijdens het verwijderen zonder deze vermelding in de Tabel ServiceControl.
Zie de MsiLockPermissionsEx Tablevoor informatie over het beveiligen van een service.
Validering