Метод Shutdown класса Win32_OperatingSystem

Метод класса ShutdownWMI выгружает программы и библиотеки DLL до тех пор, пока компьютер не будет безопасно отключен.

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

Синтаксис

uint32 Shutdown();

Параметры

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

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

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

Успешное выполнение (0)

Другое (1 4294967295)

Комментарии

Иногда компьютеры необходимо удалять из сети, например для запланированного обслуживания, так как компьютер работает неправильно или для завершения процесса настройки. Например, если DHCP-сервер раздает ошибочные IP-адреса, может потребоваться отключить компьютер до тех пор, пока не будет отправлен сервисный специалист для устранения проблемы. Если вы подозреваете, что произошла брешь в системе безопасности, может потребоваться завершить работу определенных серверов, чтобы гарантировать, что доступ к этим серверам будет невозможен, пока проблема безопасности не будет устранена. Для некоторых операций конфигурации (например, изменения имени компьютера) требуется перезагрузить компьютер, прежде чем изменение вступит в силу.

Этот метод немедленно завершает работу компьютера, если это возможно. Система останавливает все запущенные процессы, сбрасывает все буферы файлов на диск, а затем отключает систему. Вызывающий процесс должен иметь привилегию SE_SHUTDOWN_NAME , как описано в следующем примере.

Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")

Дополнительные сведения о настройке привилегии см. в разделах Выполнение привилегированных операций и Выполнение привилегированных операций с помощью VBScript. Дополнительные параметры завершения работы, такие как выход из системы или принудительное завершение работы, см. в статье Метод Win32Shutdown .

Примеры

Следующий код VBScript приводит к отключению локального компьютера.

Примечание

Для успешного вызова метода Shutdown необходимо иметь привилегию Shutdown.

Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")

for each OpSys in OpSysSet
 OpSys.Shutdown()
next

Следующий код Perl завершает работу локального компьютера.

Примечание

Для успешного вызова метода Shutdown необходимо иметь привилегию Shutdown.

use strict;
use Win32::OLE;

my $OpSysSet;

eval { $OpSysSet = Win32::OLE->GetObject("winmgmts:{(Shutdown)}//./root/cimv2")->
      ExecQuery("SELECT * FROM Win32_OperatingSystem WHERE Primary=true"); };

if(!$@ && defined $OpSysSet)
{
 close (STDERR);
 foreach my $OpSys (in $OpSysSet)
 {
  my $RetVal = $OpSys->Shutdown();
  if (!defined $RetVal || $RetVal != 0)
  { 
   print Win32::OLE->LastError, "\n";
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

Следующий код VBScript завершает работу указанного удаленного компьютера. Заполните REMOTE_SYSTEM_NAME именем удаленной системы для завершения работы.

Примечание

Для успешного вызова метода Shutdown необходимо иметь привилегию RemoteShutdown.

Set OpSysSet = GetObject("winmgmts:{(Debug,RemoteShutdown)}//REMOTE_SYSTEM_NAME/root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")

for each OpSys in OpSysSet
 OpSys.Shutdown()
next

Требования

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

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

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

Win32_OperatingSystem

Задачи WMI: управление рабочими столами

Выполнение привилегированных операций с помощью VBScript