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 |
|
DLL |
|