ServiceInstall Tablosu
ServiceInstall tablosu bir hizmeti yüklemek için kullanılır ve aşağıdaki sütunlara sahiptir.
Sütun | Tür | Anahtar | Nullable |
---|---|---|---|
ServiceInstall | Tanımlayıcı | Y | N |
Ad | Biçimlendirilmiş | N | N |
DisplayName | Biçimlendirilmiş | N | Y |
ServiceType | DoubleInteger | N | N |
StartType | DoubleInteger | N | N |
ErrorControl | DoubleInteger | N | N |
LoadOrderGroup | Biçimlendirilmiş | N | Y |
Bağımlılık | Biçimlendirilmiş | N | Y |
StartName | Biçimlendirilmiş | N | Y |
Parola | Biçimlendirilmiş | N | Y |
Bağımsız değişken | Biçimlendirilmiş | N | Y |
Parça_ | Tanımlayıcı | N | N |
Açıklama | Biçimlendirilmiş | N | Y |
Sütun
-
ServiceInstall
-
Bu, tablonun birincil anahtarıdır.
-
Adı
-
Bu sütun, yüklenecek hizmet adını veren dizedir. Dizenin uzunluğu en fazla 256 karakterdir. Hizmet denetim yöneticisi veritabanı, hizmet adındaki karakterlerin büyük/küçük harflerini korur, ancak hizmet adlarının karşılaştırmaları büyük/küçük harfe duyarlı değildir. Eğik çizgi (/) ve ters eğik çizgi (\) geçersiz hizmet adı karakterleridir.
-
DisplayName
-
Bu sütun, kullanıcı arabirimi programlarının hizmeti tanımlamak için kullandığı yerelleştirilebilir dizedir. Dizenin uzunluğu en fazla 256 karakterdir. Hizmet denetim yöneticisi görünen adın büyük/küçük harf durumunu korur, ancak görünen ad karşılaştırmaları büyük/küçük harfe duyarlı değildir.
-
ServiceType
-
Bu sütun, hizmet türünü belirten bit bayrakları kümesidir. Aşağıdaki hizmet türlerinden biri bu sütunda belirtilmelidir.
Hizmet türü Değer Açıklama SERVICE_WIN32_OWN_PROCESS 0x00000010 Kendi işlemini çalıştıran bir Microsoft Win32 hizmeti. SERVICE_WIN32_SHARE_PROCESS 0x00000020 Bir işlemi paylaşan bir Win32 hizmeti. SERVICE_INTERACTIVE_PROCESS 0x00000100 Masaüstüyle etkileşim kuran bir Win32 hizmeti. Bu değer tek başına kullanılamaz ve önceki iki türden birine eklenmelidir. Bu bayrak kullanılırken StartName sütunu LocalSystem veya null olarak ayarlanmalıdır. Aşağıdaki hizmet türleri desteklenmez.
Hizmet türü Değer Açıklama SERVICE_KERNEL_DRIVER 0x00000001 Bir sürücü hizmeti. SERVICE_FILE_SYSTEM_DRIVER 0x00000002 Dosya sistemi sürücü hizmeti. -
StartType
-
Bu sütun, hizmetin ne zaman başlatılacağını belirten bit bayrakları kümesidir. Bu sütunda aşağıdaki hizmet başlatma türlerinden biri belirtilmelidir.
Hizmet başlatma türü Değer Açıklama SERVICE_AUTO_START 0x00000002 Sistemin başlatılması sırasında bir hizmet başlatılır. SERVICE_DEMAND_START 0x00000003 Hizmet denetim yöneticisi StartService işlevini çağırdığında bir hizmet başlatılır. SERVICE_DISABLED 0x00000004 Artık başlatılamayacak bir hizmet belirtir. Windows Installer, SERVICE_BOOT_START ve SERVICE_SYSTEM_START seçeneklerini kullanamaz.
-
ErrorControl
-
Bu sütun, hizmet başlatma sırasında başlatılamazsa başlangıç programı tarafından gerçekleştirilen eylemi belirtir. Bu değerler, yüklü hizmetler için ServiceControl StartService olaylarını etkiler. Aşağıdaki hata denetimi bayraklarından biri bu sütunda belirtilmelidir.
Aşağıdaki tablodaki bayraklara msidbServiceInstallErrorControlVital (değer = 0x08000) sabitinin eklenmesi, hizmet sisteme yüklenemediğinde genel yüklemenin başarısız olması gerektiğini belirtir.
Hata denetimi bayrağı Değer Başlangıç programının eylemi SERVICE_ERROR_IGNORE 0x00000000 Hatayı günlüğe kaydeder ve başlatma işlemine devam eder. SERVICE_ERROR_NORMAL 0x00000001 Hatayı günlüğe kaydeder, bir ileti kutusu görüntüler ve başlatma işlemine devam eder. SERVICE_ERROR_CRITICAL 0x00000003 Mümkünse hatayı günlüğe kaydeder ve sistem iyi olduğu bilinen son yapılandırmayla yeniden başlatılır. Bilinen son iyi yapılandırma başlatılıyorsa başlatma işlemi başarısız olur. -
LoadOrderGroup
-
Bu sütun, bu hizmetin üyesi olduğu yük sıralama grubunu adlandıran dizeyi içerir. Hizmet bir gruba ait değilse null veya boş dize belirtin.
-
Bağımlılıkları
-
Bu sütun, sistemin bu hizmet öncesinde başlatması gereken hizmet adlarının veya yük sıralama gruplarının listesidir. Listedeki adları Null değerlerine göre ayırın. Hizmetin bağımlılıkları yoksa Null veya boş bir dize belirtin. Null eklemek için [~] söz dizimini kullanın. Bir gruba bağımlılık, grubun tüm üyelerini başlatma girişiminden sonra grubun en az bir üyesi çalışıyorsa bu hizmetin çalışabileceği anlamına gelir.
Örneğin, sistemin service1 ve service2'yi başlatmasını istemek için, ServiceInstall sütununda listelenen hizmeti başlatmadan önce Bağımlılıklar sütununa service1[~]service2[~][~] girin. service1 ve service2 tanımlayıcıları tablonun birincil anahtarında veya zaten yüklü olan hizmetin adı olmalıdır.
Bir hizmet adından ayırt edilebilmeleri için grup adlarını + ile önek olarak eklemelisiniz. ServiceInstall sütununda listelenen hizmeti başlatmadan önce sistemin service1'i başlatmasını ve MyGroup sipariş grubunun en az bir üyesini gerektirmek için service1[~]+MyGroup[~][~] girin.
-
StartName
-
Hizmet, bu sütundaki dize tarafından verilen ad olarak oturum açar. Hizmet türü SERVICE_WIN32_OWN_PROCESS şu formda bir hesap adı kullanın: DomainName\UserName. Hesap yerleşik etki alanına aitse .\UserName belirtilmesine izin verilir. Hizmet türü SERVICE_WIN32_SHARE_PROCESS veya SERVICE_INTERACTIVE_PROCESS ise LocalSystem hesabı kullanılmalıdır. CreateService işlevi, StartName null olarak belirtilirse ve çoğu hizmet bu sütunu boş bırakırsa LocalSystem hesabını kullanır.
-
parolayı
-
Bu dize, StartName sütununda belirtilen hesap adının parolasıdır. Kullanıcının hizmet olarak oturum açma izinlerine sahip olması gerektiğini unutmayın. StartName null veya boş bir dizeyse hizmetin parolası yoktur. LocalSystem'ın Startname değeri null olduğundan bu örnekteki parola null olduğundan çoğu hizmet bu sütunu boş bırakır.
Kullanıcı adı ve parolayla yüklenen bir hizmeti sildikten sonra, yükleyicinin parolayı almak için özel bir eylem kullanmadan hizmeti geri alamayacağını unutmayın. Yükleyici, sistemin korumalı bir bölümünde depolanan parola dışında hizmetle ilgili tüm gerekli bilgileri alabilir. Özel eylem, kullanıcıdan istemde bulunarak, veritabanından bir özelliği okuyarak veya bir dosyayı okuyarak parolayı alır. Özel eylemin, hizmeti yeniden yüklemeden önce parolayı sağlamak için ChangeServiceConfigçağrısı yapması gerekir.
Windows Installer, Parola alanına girilen değeri günlük dosyasına yazmaz.
-
bağımsız değişkenleri
-
Bu sütun, hizmeti çalıştırmak için gereken tüm komut satırı bağımsız değişkenlerini veya özelliklerini içerir.
-
Component_
-
Bileşen Tablosusütununun dış anahtarı. Bu hizmeti InstallService tablosunu kullanarak yüklemek için, bu bileşenin KeyPath dosyasının hizmetin yürütülebilir dosyası olması gerektiğini unutmayın.
-
Açıklaması
-
Bu sütun, yapılandırılan hizmet için yerelleştirilebilir bir açıklama içerir. Bu sütun boş bırakılırsa, yükleyici varsa hizmetin mevcut açıklamasını kullanır. Daha fazla bilgi için bkz. Microsoft Windows Yazılım Geliştirme Seti'ndeki (SDK) SERVICE_DESCRIPTION. Varolan bir açıklamayı silmek için bu sütuna "[~]" yazın. Bu, yeni veya var olan bir hizmet için boş bir açıklamaya neden olur.
Açıklamalar
sıralı tablolarda InstallServices eylemi bu tablodaki bilgileri işler. sıralı tabloları kullanma hakkında bilgi için bkz. Sıralı Tablo Kullanma.
Bu tabloda Win32 CreateService işlevinin parametrelerinin çoğu vardır.
Bir hizmetin kaynaktan çalıştır olarak yükleneceğini belirtmek için kullanıcı arabirimini kullanmak mümkün olsa da, yükleyici aslında bu tür bir yüklemeyi desteklemez. Yerel sistemin ayrıcalık düzeyiyle çalışan hizmetlerin yerel sabit sürücüden çalıştırılabilmesi için yüklenmesi gerekir. Güvenlik verilerini bir günlüğe veya sistem kayıt defterine yazabileceğinden, belirli bir kullanıcının ayrıcalıklarına bürünen hizmetleri yüklemekten kaçının. Bu durum bir güvenlik sorunu, parola çakışması veya sistem yeniden başlatıldığında yapılandırma verilerinin kaybolmasına neden olabilir.
Kaldırma sırasında bir hizmeti silmek için, ServiceControl tablosu hizmet için karşılık gelen bir kayıt olmalıdır ve olay sütununda msidbServiceControlEventUninstallDelete bayrağı görünmelidir. Yükleyici, ServiceControl tablosunda bu girdi olmadan kaldırma sırasında ServiceInstall tablosundaki bir hizmeti silmez.
Bir hizmetin güvenliğini sağlama hakkında bilgi için bkz. MsiLockPermissionsEx Table.
Doğrulama
ICE03
ICE06
ice32
ICE45
ICE46
ice66
ice69