Método Reboot de la clase Win32_OperatingSystem
El método declase Reboot WMI apaga el sistema informático y, a continuación, lo reinicia.
En este tema se usa la sintaxis de Managed Object Format (MOF). Para obtener más información sobre el uso de este método, vea Llamar a un método.
Sintaxis
uint32 Reboot();
Parámetros
Este método no tiene parámetros.
Valor devuelto
Devuelve cero (0) para indicar que se ha realizado correctamente. Cualquier otro número indica que hubo un error. Para obtener códigos de error, consulte Constantes de error WMI o WbemErrorEnum. Para obtener valores HRESULT generales, consulte Códigos de error del sistema.
-
Correcto (0)
-
Otros (1 4294967295)
Comentarios
La capacidad de reiniciar un equipo mediante programación permite a los administradores realizar muchas tareas de administración de equipos de forma remota.
Por ejemplo, si crea un script para instalar software o realizar un cambio de configuración que requiera reiniciar un equipo, puede incluir el comando restart en el script y realizar toda la operación de forma remota. El método Reboot se puede usar para reiniciar un equipo. Al igual que el método Win32Shutdown , el método Reboot requiere que el usuario cuyas credenciales de seguridad use el script para poseer el privilegio Apagar.
Ejemplos
El siguiente ejemplo de código VBScript invoca el método Reboot de la clase Win32_OperatingSystem .
Nota
Debe tener el privilegio Shutdown para invocar correctamente el 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
El código Perl siguiente invoca el método Reboot de la clase Win32_OperatingSystem .
Nota
Debe tener el privilegio Shutdown para invocar correctamente el 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";
}
El siguiente VBScript invoca el método Reboot de la clase Win32_OperatingSystem en un sistema remoto. Rellene REMOTE_SYSTEM_NAME con el nombre del sistema remoto que se va a reiniciar.
Nota
Debe tener el privilegio RemoteShutdown para invocar correctamente el 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
después de Perl invoca el método Reboot de la clase Win32_OperatingSystem en un sistema remoto. Rellene REMOTE_SYSTEM_NAME con el nombre del sistema remoto que se va a reiniciar.
Nota
Debe tener el privilegio RemoteShutdown para invocar correctamente el 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 | Value |
---|---|
Cliente mínimo compatible |
Windows Vista |
Servidor mínimo compatible |
Windows Server 2008 |
Espacio de nombres |
Root\CIMV2 |
MOF |
|
Archivo DLL |
|