Метод ResumeService класса Win32_Service (поставщики WMI CIMWin32)

Метод класса ResumeServiceWMI пытается поместить упоминаемую службу в возобновленное состояние.

В этом разделе используется синтаксис MOF. Дополнительные сведения об использовании этого метода см. в разделе Вызов метода .

Синтаксис

uint32 ResumeService();

Параметры

Этот метод не имеет параметров.

Возвращаемое значение

Возвращает одно из значений, перечисленных в следующем списке, или любое другое значение, указывающее на ошибку. Дополнительные коды ошибок см. в разделе Константы ошибок WMI или WbemErrorEnum. Общие значения HRESULT см. в разделе Системные коды ошибок.

0

Запрос принят.

1

Запрос не поддерживается.

2

У пользователя не было необходимого доступа.

3

Службу нельзя остановить, так как от нее зависят другие работающие службы.

4

Запрошенный управляющий код недопустим или неприемлем для данной службы.

5

Запрошенный код элемента управления не может быть отправлен в службу, так как состояние службы (Win32_BaseService. Свойство State ) равно 0, 1 или 2.

6

Служба не запущена.

7

Служба не ответила на запрос запуска за отведенное время.

8

Неизвестный сбой при запуске службы.

9

Путь к каталогу к исполняемому файлу службы не найден.

10

Служба уже запущена.

11

База данных для добавления новой службы заблокирована.

12

Зависимость, на основе которого используется эта служба, была удалена из системы.

13

Этой службе не удалось найти службу, которая необходима зависимой службе.

14

Эта служба была отключена в системе.

15

Эта служба не поддерживает проверку подлинности, необходимую для работы в системе.

16

Эта служба удаляется из системы.

17

Служба не имеет потока выполнения.

18

Служба имеет циклические зависимости при запуске.

19

Служба выполняется под тем же именем.

20

Имя службы содержит недопустимые символы.

21

Службе переданы недопустимые параметры.

22

Учетная запись, под которой выполняется эта служба, является недопустимой или не имеет разрешений на запуск службы.

23

Служба существует в базе данных доступных в системе служб.

24

Служба в данный момент приостановлена в системе.

Комментарии

Хотя может показаться, что между остановленной службой и приостановленной службой может не быть никакой практической разницы, эти два состояния выглядят по-разному для SCM. Остановленная служба — это служба, которая не выполняется и должна пройти всю процедуру запуска службы. Приостановленная служба, однако, по-прежнему работает, но ее функционирование приостановлено. Из-за этого приостановленной службе не нужно выполнять всю процедуру запуска службы, но требуется другая процедура для возобновления работы.

Для запуска остановленной службы или возобновления приостановленной службы необходимо использовать соответствующий метод. Методы Win32_ServiceStartService и ResumeService следует использовать в следующих ситуациях:

  • Если служба в настоящее время остановлена, необходимо использовать метод StartService , чтобы перезапустить ее; ResumeService не может запустить службу, которая в данный момент остановлена.
  • Если служба приостановлена, необходимо использовать ResumeService. Если вы используете метод StartService в приостановленной службе, вы получите сообщение "Служба уже запущена". Однако служба остается приостановленной до тех пор, пока ей не будет отправлен код управления возобновлением работы службы.

Примеры

В примере возобновления службы автозапуска, которые являются приостановленными VBScript, перезапускаются все приостановленные службы автозапуска.

В следующем примере кода VBScript описывается возобновление приостановленной службы из экземпляров Win32_Service.

Примечание

Служба должна поддерживать приостановку и уже запущена.

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.ResumeService()
  if RetVal = 0 then 
   WScript.Echo "Service resumed"   
  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

В следующем примере кода Perl описывается возобновление приостановленной службы из экземпляров Win32_Service.

Примечание

Служба должна поддерживать приостановку и уже запущена.

use strict;
use Win32::OLE;

my $ServiceSet;

eval { $ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='Schedule'"); };

if (!$@ && defined $ServiceSet)
{
 foreach my $Service (in $ServiceSet)
 {
  my $SupportsPause = $Service->{AcceptPause};
  if ($SupportsPause)
  {
   my $RetVal = $Service->ResumeService();
   if ($RetVal == 0)
   {
    print "\nService resumed\n";
   }
   else
   {
    if ($RetVal == 1)
    {
     print STDERR "\nPause not supported\n";
    }
    else
    {
     print STDERR "\nAn error occurred: ", $RetVal, "\n";
    }
   }
  }
  else
  {
   print "\nService does not support pause\n";
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Пространство имен
Root\CIMv2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

См. также раздел

Классы операционной системы

Win32_Service

Задачи WMI: службы