Метод перезагрузки класса Win32_OperatingSystem

Метод класса RebootWMI завершает работу компьютерной системы, а затем перезапускает ее.

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

Синтаксис

uint32 Reboot();

Параметры

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

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

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

Успех (0)

Другое (1 4294967295)

Remarks

Возможность программно перезагрузить компьютер позволяет администраторам выполнять множество задач управления компьютерами удаленно.

Например, если вы создаете скрипт для установки программного обеспечения или вносите изменение конфигурации, требующее перезагрузки компьютера, можно включить команду перезапуска в скрипт и выполнить всю операцию удаленно. Метод перезагрузки можно использовать для перезагрузки компьютера. Как и в методе Win32Shutdown , метод Reboot требует, чтобы пользователь, учетные данные безопасности которых используются скриптом для получения привилегий завершения работы.

Примеры

Следующий пример кода VBScript вызывает метод Reboot класса Win32_OperatingSystem .

Примечание

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

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

for each OpSys in OpSysSet
 OpSys.Reboot()
next

Следующий код Perl вызывает метод Reboot класса Win32_OperatingSystem .

Примечание

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

use Win32::OLE;
use strict;
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->Reboot(); 
  if (!defined $RetVal || $RetVal != 0)
  {
   print Win32::OLE->LastError, "\n"; 
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

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

Примечание

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

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

for each OpSys in OpSysSet
 OpSys.Reboot()
next

Он после Perl вызывает метод Reboot класса Win32_OperatingSystem в удаленной системе. Заполните REMOTE_SYSTEM_NAME именем удаленной системы для перезагрузки.

Примечание

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

use strict;
use Win32::OLE;

use constant REMOTE_SYSTEM_NAME => "MACHINENAME";
use constant USERNAME => "USER";
use constant PASSWORD => "PASSWORD";
use constant NAMESPACE => "root\\cimv2";
use constant wbemPrivilegeRemoteShutdown => 23;
use constant wbemImpersonationLevelImpersonate => 3;
close(STDERR);
my ($locator, $services, $OpSysSet);
eval {
  $locator = Win32::OLE->new('WbemScripting.SWbemLocator');
  $locator->{Security_}->{impersonationlevel} = wbemImpersonationLevelImpersonate;
  $services = $locator->ConnectServer(REMOTE_SYSTEM_NAME, NAMESPACE, USERNAME, PASSWORD);
  $services->{Security_}->{Privileges}->Add(wbemPrivilegeRemoteShutdown);
  $OpSysSet = $services->ExecQuery("SELECT * FROM Win32_OperatingSystem WHERE Primary=true");
 };

if (!$@ && defined $OpSysSet)
{
 foreach my $OpSys (in $OpSysSet)
 {
  $OpSys->Reboot();
 }
}
else
{
 print Win32::OLE->LastError, "\n";
 exit(1);
}

Требования

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

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

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

Win32_OperatingSystem

Метод CIM_OperatingSystem.Shutdown

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