ServiceInstall Table
Tabela ServiceInstall służy do instalowania usługi i zawiera następujące kolumny.
Kolumna | Typ | Klucz | Nullable |
---|---|---|---|
ServiceInstall | identyfikator | Y | N |
Nazwa | sformatowane | N | N |
DisplayName | sformatowane | N | Y |
ServiceType | doubleinteger | N | N |
Typ rozpoczęcia | doubleinteger | N | N |
ErrorControl | doubleinteger | N | N |
LoadOrderGroup | sformatowane | N | Y |
Zależności | sformatowane | N | Y |
Nazwa początkowa | sformatowane | N | Y |
Hasło | sformatowane | N | Y |
Argumenty | sformatowane | N | Y |
Składnik_ | identyfikator | N | N |
Opis | sformatowane | N | Y |
Kolumny
-
ServiceInstall
-
Jest to klucz podstawowy tabeli.
-
nazwa
-
Ta kolumna to ciąg, który nadaje nazwę usługi do zainstalowania. Ciąg ma maksymalną długość 256 znaków. Baza danych menedżera kontroli usług zachowuje wielkość liter w nazwie usługi, ale porównania nazw usług są bez uwzględniania wielkości liter. Ukośnik (/) i ukośnik odwrotny (\) są nieprawidłowymi znakami nazwy usługi.
-
DisplayName
-
Ta kolumna jest ciągiem lokalizowalnym używanym przez programy interfejsu użytkownika do identyfikowania usługi. Ciąg ma maksymalną długość 256 znaków. Menedżer kontroli usługi zachowuje wielkość liter nazwy wyświetlanej, ale porównania nazw wyświetlanych są bez uwzględniania wielkości liter.
-
ServiceType
-
Ta kolumna to zestaw flag bitowych, które określają typ usługi. W tej kolumnie należy określić jeden z następujących typów usług.
Typ usługi Wartość Opis SERVICE_WIN32_OWN_PROCESS 0x00000010 Usługa Microsoft Win32, która uruchamia własny proces. SERVICE_WIN32_SHARE_PROCESS 0x00000020 Usługa Win32, która współudzieli proces. SERVICE_INTERACTIVE_PROCESS 0x00000100 Usługa Win32, która współdziała z pulpitem. Tej wartości nie można używać samodzielnie i należy dodać do jednego z dwóch poprzednich typów. Kolumna StartName musi być ustawiona na LocalSystem lub null w przypadku używania tej flagi. Następujące typy usług nie są obsługiwane.
Typ usługi Wartość Opis SERVICE_KERNEL_DRIVER 0x00000001 Usługa sterownika. SERVICE_FILE_SYSTEM_DRIVER 0x00000002 Usługa sterownika systemu plików. -
Typ startowy
-
Ta kolumna to zestaw flag bitowych, które określają, kiedy należy uruchomić usługę. W tej kolumnie należy określić jeden z następujących typów uruchamiania usługi.
Instalator Windows nie może używać opcji SERVICE_BOOT_START i SERVICE_SYSTEM_START.
-
ErrorControl
-
Ta kolumna określa akcję podjętą przez program uruchamiania, jeśli uruchomienie usługi nie powiedzie się podczas uruchamiania. Te wartości wpływają na zdarzenia ServiceControl StartService dla zainstalowanych usług. W tej kolumnie należy określić jedną z następujących flag kontroli błędów.
Dodanie stałej msidbServiceInstallErrorControlVital (wartość = 0x08000) do flag w poniższej tabeli określa, że ogólna instalacja powinna zakończyć się niepowodzeniem, jeśli nie można zainstalować usługi w systemie.
Flaga kontrolki błędu Wartość Akcja programu uruchamiania SERVICE_ERROR_IGNORE 0x00000000 Rejestruje błąd i kontynuuje operację uruchamiania. SERVICE_ERROR_NORMAL 0x00000001 Rejestruje błąd, wyświetla okno komunikatu i kontynuuje operację uruchamiania. SERVICE_ERROR_CRITICAL 0x00000003 Rejestruje błąd, jeśli jest to możliwe, a system zostanie uruchomiony ponownie z ostatnią konfiguracją, która jest znana jako dobra. Jeśli trwa uruchamianie ostatniej znanej dobrej konfiguracji, operacja uruchamiania zakończy się niepowodzeniem. -
LoadOrderGroup
-
Ta kolumna zawiera ciąg, który nazywa grupę porządkowania obciążenia, do której należy ta usługa. Określ wartość null lub pusty ciąg, jeśli usługa nie należy do grupy.
-
zależności
-
Ta kolumna to lista nazw usług lub grup porządkowania ładowania, które system musi uruchomić przed tą usługą. Rozdziel nazwy na liście według wartości null. Jeśli usługa nie ma zależności, określ wartość Null lub pusty ciąg. Użyj składni [~], aby wstawić wartość Null. Zależność od grupy oznacza, że ta usługa może działać, jeśli co najmniej jeden członek grupy jest uruchomiony po próbie uruchomienia wszystkich członków grupy.
Aby na przykład wymagać, aby system uruchamiał usługę service1 i service2, przed uruchomieniem usługi wymienionej w kolumnie ServiceInstall wprowadź ciąg service1[~]service2[~][~] w kolumnie Zależności. Identyfikatory service1 i service2 muszą występować w kluczu podstawowym tabeli lub być nazwą usługi, która jest już zainstalowana.
Należy prefiksować nazwy grup z +, aby można było je odróżnić od nazwy usługi. Aby wymagać, aby system uruchamiał usługę Service1 i co najmniej jeden element członkowski grupy zamawiania MyGroup przed uruchomieniem usługi wymienionej w kolumnie ServiceInstall, wprowadź service1[~]+MyGroup[~][~].
-
Nazwa początkowa
-
Usługa jest rejestrowana jako nazwa podana przez ciąg w tej kolumnie. Jeśli typ usługi jest SERVICE_WIN32_OWN_PROCESS użyj nazwy konta w postaci: DomainName\UserName. Jeśli konto należy do wbudowanej domeny, może określić wartość .\UserName. Konto LocalSystem musi być używane, jeśli typ usługi jest SERVICE_WIN32_SHARE_PROCESS lub SERVICE_INTERACTIVE_PROCESS. Funkcja CreateService używa konta LocalSystem, jeśli parametr StartName jest określony jako null, a w związku z tym większość usług pozostaw tę kolumnę pustą.
-
hasło
-
Ten ciąg jest hasłem do nazwy konta określonej w kolumnie StartName. Należy pamiętać, że użytkownik musi mieć uprawnienia do logowania się jako usługa. Usługa nie ma hasła, jeśli parametr StartName ma wartość null lub pusty ciąg. Nazwa startowa systemu lokalnego ma wartość null, dlatego hasło w tym wystąpieniu ma wartość null, więc większość usług pozostawi tę kolumnę pustą.
Należy pamiętać, że po usunięciu usługi, która została zainstalowana przy użyciu nazwy użytkownika i hasła, instalator nie może wycofać usługi bez uprzedniego użycia akcji niestandardowej w celu pobrania hasła. Instalator może uzyskać wszystkie niezbędne informacje o usłudze z wyjątkiem hasła przechowywanego w chronionej części systemu. Akcja niestandardowa uzyskuje hasło, wyświetlając monit użytkownika, odczytując właściwość z bazy danych lub odczytując plik. Akcja niestandardowa musi następnie wywołać ChangeServiceConfig, aby podać hasło przed ponowną instalacją usługi.
Instalator Windows nie zapisuje wartości wprowadzonej w polu Hasło w pliku dziennika.
-
argumenty
-
Ta kolumna zawiera wszystkie argumenty wiersza polecenia lub właściwości wymagane do uruchomienia usługi.
-
Component_
-
Klucz zewnętrzny do kolumny jednej z tabel składników . Należy pamiętać, że aby zainstalować tę usługę przy użyciu tabeli InstallService, parametr KeyPath dla tego składnika musi być plikiem wykonywalny dla usługi.
-
opis
-
Ta kolumna zawiera zlokalizowany opis konfigurowanej usługi. Jeśli ta kolumna pozostanie pusta, instalator użyje istniejącego opisu usługi, jeśli istnieje. Aby uzyskać więcej informacji, zobacz SERVICE_DESCRIPTION w zestawie Microsoft Windows Software Development Kit (SDK). Aby wymazać istniejący opis, wprowadź ciąg "[~]" w tej kolumnie. Spowoduje to pusty opis nowej lub istniejącej usługi.
Uwagi
Akcja InstallServices w tabelach sekwencji przetwarza informacje w tej tabeli. Aby uzyskać informacje na temat używania tabel sekwencji , zobacz Using a Sequence Table.
Ta tabela zawiera większość parametrów funkcji CreateServiceWin32.
Chociaż można użyć interfejsu użytkownika, aby określić, że usługa ma być zainstalowana jako element run-from-source, instalator w rzeczywistości nie obsługuje tego typu instalacji. Aby można było uruchamiać z lokalnego dysku twardego, należy zainstalować usługi z poziomem uprawnień systemu lokalnego. Unikaj instalowania usług, które personifikują uprawnienia określonego użytkownika, ponieważ może to spowodować zapisanie danych zabezpieczeń w dzienniku lub rejestrze systemowym. Może to potencjalnie spowodować problem z zabezpieczeniami, konflikt haseł lub utratę danych konfiguracji po ponownym uruchomieniu systemu.
Aby usunąć usługę podczas odinstalowywania, musi istnieć odpowiedni rekord dla usługi w tabeli ServiceControl i msidbServiceControlEventUninstallDelete flaga musi być wyświetlana w kolumnie Zdarzenie. Instalator nie usuwa usługi w tabeli ServiceInstall podczas odinstalowywania bez tego wpisu w tabeli ServiceControl.
Aby uzyskać informacje na temat zabezpieczania usługi, zobacz MsiLockPermissionsEx Table.
Walidacja