Bagikan melalui


Membuat metode kelas Win32_Service (Penyedia CIMWin32 WMI)

Metode Buatkelas WMI membuat layanan sistem baru.

Topik ini menggunakan sintaks Managed Object Format (MOF). Untuk informasi selengkapnya tentang menggunakan metode ini, lihat Memanggil Metode.

Sintaks

uint32 Create(
  [in] string  Name,
  [in] string  DisplayName,
  [in] string  PathName,
  [in] uint8   ServiceType,
  [in] uint8   ErrorControl,
  [in] string  StartMode,
  [in] boolean DesktopInteract,
  [in] string  StartName,
  [in] string  StartPassword,
  [in] string  LoadOrderGroup,
  [in] string  LoadOrderGroupDependencies[],
  [in] string  ServiceDependencies[]
);

Parameter

Nama [in]

Nama layanan yang akan diinstal ke metode Buat . Panjang string maksimum adalah 256 karakter. Database Service Control Manager mempertahankan kasus karakter, tetapi perbandingan nama layanan selalu tidak peka huruf besar/kecil. Garis miring maju (/) dan garis miring kembali ganda (\) adalah karakter nama layanan yang tidak valid.

DisplayName [in]

Nama tampilan layanan. String ini memiliki panjang maksimum 256 karakter. Nama ini dipertahankan huruf besar/kecil di Service Control Manager. Perbandingan DisplayName selalu tidak peka huruf besar/kecil.

Batasan: Menerima nilai yang sama dengan parameter Nama .

Contoh: "Atdisk".

PathName [in]

Jalur yang sepenuhnya memenuhi syarat ke file yang dapat dieksekusi yang mengimplementasikan layanan.

Contoh: "\SystemRoot\System32\drivers\afd.sys".

ServiceType [in]

Jenis layanan yang disediakan untuk proses yang memanggilnya.

1 (0x1)

Kernel Driver

2 (0x2)

Driver Sistem File

4 (0x4)

Adaptor

8 (0x8)

Recognizer Driver

16 (0x10)

Proses Sendiri

32 (0x20)

Proses Berbagi

256 (0x100)

Proses Interaktif

ErrorControl [in]

Tingkat keparahan kesalahan jika metode Buat gagal dimulai. Nilai menunjukkan tindakan yang diambil oleh program startup jika kegagalan terjadi. Semua kesalahan dicatat oleh sistem.

0

Pengguna tidak diberi tahu.

1

Pengguna diberi tahu.

2

Sistem dimulai ulang dengan konfigurasi terakhir yang diketahui baik.

3

Sistem mencoba untuk memulai dengan konfigurasi yang baik.

StartMode [in]

Mode mulai layanan dasar Windows.

Boot

Driver perangkat dimulai oleh pemuat sistem operasi. Nilai ini hanya berlaku untuk layanan driver.

Sistem

Driver perangkat dimulai oleh proses inisialisasi sistem operasi. Nilai ini hanya berlaku untuk layanan driver.

Otomatis

Layanan yang akan dimulai secara otomatis oleh Service Control Manager selama startup sistem.

Manual

Layanan yang akan dimulai oleh Service Control Manager saat proses memanggil metode StartService .

Nonaktif

Layanan yang tidak dapat lagi dimulai.

DesktopInteract [in]

Jika true, layanan dapat membuat atau berkomunikasi dengan windows di desktop.

StartName [in]

Nama akun tempat layanan berjalan. Bergantung pada jenis layanan, nama akun mungkin dalam bentuk format DomainName\Username atau User Principal Name (UPN) (Username@DomainName). Proses layanan dicatat menggunakan salah satu dari dua formulir ini saat berjalan. Jika akun milik domain bawaan, .\Nama Pengguna dapat ditentukan. Jika NULL ditentukan, layanan masuk sebagai akun LocalSystem. Untuk driver tingkat kernel atau sistem, StartName berisi nama objek driver (yaitu, \FileSystem\Rdr atau \Driver\Xns) yang digunakan sistem input dan output (I/O) untuk memuat driver perangkat. Jika NULL ditentukan, driver berjalan dengan nama objek default yang dibuat oleh sistem I/O berdasarkan nama layanan. Contoh: DWDOM\Admin.

StartPassword [in]

Kata sandi ke nama akun yang ditentukan oleh parameter StartName . Tentukan NULL jika Anda tidak mengubah kata sandi. Tentukan string kosong jika layanan tidak memiliki kata sandi.

LoadOrderGroup [in]

Nama grup yang terkait dengan layanan baru. Grup pesanan beban terkandung dalam registri, dan menentukan urutan di mana layanan dimuat ke dalam sistem operasi. Jika pointer adalah NULL atau jika menunjuk ke string kosong, layanan bukan milik grup. Dependensi antar grup harus tercantum dalam parameter LoadOrderGroupDependencies . Layanan dalam daftar grup pengurutan beban dimulai terlebih dahulu, diikuti oleh layanan dalam grup yang tidak ada dalam daftar grup urutan beban, diikuti oleh layanan yang bukan milik grup. Registri memiliki daftar grup pemesanan beban yang terletak di:

\ HKEY_LOCAL_MACHINE Sistem\CurrentControlSet\Kontrol\ServiceGroupOrder

LoadOrderGroupDependencies [in]

Array grup pengurutan beban yang harus dimulai sebelum layanan ini. Setiap item dalam array dibatasi oleh NULL dan daftar dihentikan oleh dua nilai NULL . Di Visual Basic atau skrip, Anda dapat meneruskan vbArray. Jika pointer adalah NULL atau jika menunjuk ke string kosong, layanan tidak memiliki dependensi. Nama grup harus diawali dengan karakter SC_GROUP_IDENTIFIER (didefinisikan dalam file Winsvc.h) untuk membedakannya dari nama layanan, karena layanan dan grup layanan memiliki namespace yang sama. Dependensi pada grup berarti bahwa layanan ini dapat berjalan jika setidaknya satu anggota grup berjalan setelah upaya untuk memulai semua anggota grup.

ServiceDependencies [in]

Array yang berisi nama layanan yang harus dimulai sebelum layanan ini dimulai. Setiap item dalam array dibatasi oleh NULL dan daftar dihentikan oleh dua nilai NULL . Di Visual Basic atau skrip, Anda dapat meneruskan vbArray. Jika pointer adalah NULL, atau jika menunjuk ke string kosong, layanan tidak memiliki dependensi. Dependensi pada layanan berarti bahwa layanan ini hanya dapat berjalan jika layanan yang bergantung padanya berjalan.

Mengembalikan nilai

Mengembalikan salah satu nilai yang tercantum dalam daftar berikut ini atau nilai lainnya untuk menunjukkan kesalahan. Untuk kode kesalahan tambahan, lihat Konstanta Kesalahan WMI atau WbemErrorEnum. Untuk nilai HRESULT umum, lihat Kode Kesalahan Sistem.

0

Permintaan diterima.

1

Permintaan tidak didukung.

2

Pengguna tidak memiliki akses yang diperlukan.

3

Layanan tidak dapat dihentikan karena layanan lain yang sedang berjalan bergantung padanya.

4

Kode kontrol yang diminta tidak valid, atau tidak dapat diterima oleh layanan.

5

Kode kontrol yang diminta tidak dapat dikirim ke layanan karena status layanan (Properti status kelas Win32_BaseService ) sama dengan 0, 1, atau 2.

6

Layanan belum dimulai.

7

Layanan tidak menanggapi permintaan mulai secara tepat waktu.

8

Kegagalan tidak diketahui saat memulai layanan.

9

Jalur direktori ke file yang dapat dieksekusi layanan tidak ditemukan.

10

Layanan sudah berjalan.

11

Database untuk menambahkan layanan baru dikunci.

12

Dependensi yang diandalkan layanan ini telah dihapus dari sistem.

13

Layanan gagal menemukan layanan yang diperlukan dari layanan dependen.

14

Layanan telah dinonaktifkan dari sistem.

15

Layanan tidak memiliki autentikasi yang benar untuk dijalankan pada sistem.

16

Layanan ini sedang dihapus dari sistem.

17

Layanan ini tidak memiliki utas eksekusi.

18

Layanan ini memiliki dependensi melingkar ketika dimulai.

19

Layanan berjalan dengan nama yang sama.

20

Nama layanan memiliki karakter yang tidak valid.

21

Parameter yang tidak valid telah diteruskan ke layanan.

22

Akun tempat layanan ini berjalan tidak valid atau tidak memiliki izin untuk menjalankan layanan.

23

Layanan ada dalam database layanan yang tersedia dari sistem.

24

Layanan saat ini dijeda dalam sistem.

Keterangan

Layanan umumnya diinstal dengan salah satu dari dua cara: baik sebagai bagian dari penginstalan sistem operasi atau dengan menggunakan program penginstalan yang disediakan oleh pengembang layanan. Namun, beberapa layanan, terutama yang dibuat secara internal, mungkin tidak memiliki program penginstalan. Dalam kasus tersebut, Anda dapat menggunakan metode Buat untuk menginstal layanan secara terprogram.

Terlepas dari namanya, metode Create sebenarnya tidak membuat layanan; ini hanya menginstal layanan yang ada. Untuk menggunakan perintah ini, Anda perlu menyalin file yang dapat dieksekusi layanan ke komputer lalu menggunakan Buat untuk menginstal layanan.

Metode Buat mirip dengan metode Ubah . Dalam kedua kasus, properti layanan diteruskan sebagai parameter ke metode . Seperti parameter yang digunakan dengan metode Ubah , urutan di mana parameter ini diteruskan sangat penting.

Parameter LoadOrderGroup mewakili pengelompokan layanan sistem yang menentukan dependensi eksekusi. Layanan harus dimulai dalam urutan yang ditentukan oleh Grup Urutan Beban, karena layanan bergantung satu sama lain. Layanan dependen ini mengharuskan kehadiran layanan antecedent berfungsi dengan benar.

Contoh

VBScript berikut menginstal layanan bernama DbService

Const OWN_PROCESS = 16
Const NOT_INTERACTIVE = True
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objService = objWMIService.Get("Win32_BaseService")
errReturn = objService.Create ("DbService", "Personnel Database", _
"c:\windows\system32\db.exe", OWN_PROCESS ,2 ,"Automatic" , _
 NOT_INTERACTIVE ,".\LocalSystem" ,"")

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista
Server minimum yang didukung
Windows Server 2008
Ruang nama
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Lihat juga

Kelas Sistem Operasi

Win32_Service

Tugas WMI: Layanan