Метод 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 |
|
DLL |
|