Поделиться через


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

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

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

Синтаксис

uint32 Reboot();

Параметры

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

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

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

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

Другое (1 4294967295)

Комментарии

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

Например, если вы создаете скрипт для установки программного обеспечения или вносите изменение конфигурации, требующее перезагрузки компьютера, можно включить команду restart в скрипт и выполнить всю операцию удаленно. Для перезагрузки компьютера можно использовать метод Reboot . Как и метод 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: управление рабочими столами