Bagikan melalui


Metode PauseService dari kelas Win32_Service (Penyedia WMI CIMWin32)

Metode kelas PauseServiceWMI mencoba menempatkan layanan dalam status dijeda.

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

Sintaks

uint32 PauseService();

Parameter

Metode ini tidak memiliki parameter.

Nilai hasil

Mengembalikan salah satu nilai yang tercantum dalam daftar berikut, 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 (Win32_BaseService.Properti status) sama dengan 0, 1, atau 2.

6

Layanan belum dimulai.

7

Layanan ini tidak menanggapi permintaan mulai secara tepat waktu.

8

Kegagalan yang 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

Setelah Anda menentukan layanan mana yang dapat dihentikan atau dijeda, Anda dapat menggunakan metode StopService dan PauseService untuk menghentikan dan menjeda layanan. Keputusan untuk menghentikan layanan daripada menjedanya, atau sebaliknya, tergantung pada beberapa faktor, termasuk yang berikut:

  • Apakah layanan mampu dijeda? Jika tidak, satu-satunya opsi Anda adalah menghentikan layanan.
  • Apakah Anda perlu terus menangani permintaan klien untuk siapa pun yang sudah terhubung ke layanan? Jika demikian, menjeda layanan biasanya memungkinkannya untuk menangani klien yang ada sambil menolak akses ke klien baru. Sebaliknya, ketika Anda menghentikan layanan, semua klien segera terputus.
  • Apakah Anda perlu mengonfigurasi ulang layanan dan segera menerapkan perubahan? Meskipun properti layanan dapat diubah saat layanan dijeda, sebagian besar tidak berlaku sampai layanan benar-benar dihentikan dan dimulai ulang.

Kode pembuatan skrip yang diperlukan untuk menghentikan layanan hampir identik dengan kode yang diperlukan untuk menjeda layanan.

Contoh

Sampel kode VBScript berikut menunjukkan cara menjeda layanan tertentu dari instans Win32_Service.

Catatan

Layanan harus mendukung jeda dan sudah berjalan.

Set ServiceSet = GetObject("winmgmts:").ExecQuery("select * from Win32_Service where Name='Schedule'")

for each Service in ServiceSet
 SupportsPause = Service.AcceptPause
 if SupportsPause = true then
  RetVal = Service.PauseService()
  if RetVal = 0 then 
   WScript.Echo "Service paused"   
  else
   if RetVal = 1 then 
    WScript.Echo "Pause not supported" 
   else WScript.Echo "An error occurred:" & RetVal
   End If
  End If
 else
  WScript.Echo "Service does not support pause"
 end if
next

Sampel kode Perl berikut menunjukkan cara menjeda layanan tertentu dari instans Win32_Service.

Catatan

Layanan harus mendukung jeda dan sudah berjalan.

use strict;
use Win32::OLE;

my ($ServiceSet, $SupportsPause, $RetVal);  
eval {$ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='Schedule'"); };
unless($@)
{
 foreach my $ServiceInst (in $ServiceSet)
 {
  if ($ServiceInst->{AcceptPause})
  {
   $RetVal = $ServiceInst->PauseService();
   if ($RetVal == 0)
   {
    print "\nService paused\n";
   }
   else
   {
    if ($RetVal == 1)
    {
     print "\nPause not supported\n" ;
    }
    else 
    {
     print "\nAn error occurred:", $RetVal, "\n";
    }
   } 
  }
  else
  {
   print "\nService does not support pause\n";
  }
 }
}
else
{
 print STDERR "\n", Win32::OLE->LastError, "\n";
}

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

Baca juga

Kelas Sistem Operasi

Win32_Service

Tugas WMI: Layanan

StopService