Compartilhar via


Método reboot da classe Win32_OperatingSystem

O método de classe ReinicializarWMI desliga o sistema do computador e o reinicia.

Este tópico usa a sintaxe MOF (Managed Object Format). Para obter mais informações sobre como usar esse método, consulte Chamando um método.

Sintaxe

uint32 Reboot();

Parâmetros

Esse método não tem parâmetros.

Valor retornado

Retorna zero (0) para indicar êxito. Qualquer outro número indica um erro. Para obter códigos de erro, consulte Constantes de erro WMI ou WbemErrorEnum. Para obter valores gerais de HRESULT , consulte Códigos de erro do sistema.

Sucesso (0)

Outro (1 4294967295)

Comentários

A capacidade de reiniciar programaticamente um computador permite que os administradores executem muitas tarefas de gerenciamento de computador remotamente.

Por exemplo, se você criar um script para instalar o software ou fazer uma alteração de configuração que exija a reinicialização de um computador, poderá incluir o comando de reinicialização no script e executar toda a operação remotamente. O método Reboot pode ser usado para reiniciar um computador. Assim como o método Win32Shutdown , o método Reboot requer o usuário cujas credenciais de segurança estão sendo usadas pelo script para possuir o privilégio desligamento.

Exemplos

O exemplo de código VBScript a seguir invoca o método Reboot da classe Win32_OperatingSystem .

Observação

Você deve ter o privilégio Desligamento para invocar com êxito o método Shutdown.

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

for each OpSys in OpSysSet
 OpSys.Reboot()
next

O código Perl a seguir invoca o método Reboot da classe Win32_OperatingSystem .

Observação

Você deve ter o privilégio Desligamento para invocar com êxito o método 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";
}

O VBScript a seguir invoca o método Reboot da classe Win32_OperatingSystem em um sistema remoto. Preencha REMOTE_SYSTEM_NAME com o nome do sistema remoto a ser reinicializado.

Observação

Você deve ter o privilégio RemoteShutdown para invocar com êxito o método Reboot

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

ele seguindo Perl invoca o método Reboot da classe Win32_OperatingSystem em um sistema remoto. Preencha REMOTE_SYSTEM_NAME com o nome do sistema remoto a ser reinicializado.

Observação

Você deve ter o privilégio RemoteShutdown para invocar com êxito o método Reboot.

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);
}

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Confira também

Classes do sistema operacional

Win32_operatingsystem

Método CIM_OperatingSystem.Shutdown

Tarefas do WMI: Gerenciamento de Área de Trabalho