Método Shutdown de la clase Win32_OperatingSystem
El método de clase ShutdownWMI descarga programas y archivos DLL hasta que es seguro desactivar el equipo.
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 Shutdown();
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 ver los 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
En ocasiones, los equipos deben quitarse de la red, quizás para el mantenimiento programado, porque el equipo no funciona correctamente o para completar un proceso de configuración. Por ejemplo, si un servidor DHCP entrega direcciones IP erróneas, es posible que desee apagar el equipo hasta que se pueda enviar un técnico de servicio para solucionar el problema. Si sospecha que se ha producido una infracción de seguridad, es posible que tenga que apagar determinados servidores para asegurarse de que no se puede acceder a ellos hasta que se haya resuelto el problema de seguridad. Algunas operaciones de configuración (como cambiar un nombre de equipo) requieren que reinicie el equipo antes de que el cambio surta efecto.
Este método cierra inmediatamente el equipo, si es posible. El sistema detiene todos los procesos en ejecución, vacía todos los búferes de archivos en el disco y, a continuación, apaga el sistema. El proceso de llamada debe tener el privilegio SE_SHUTDOWN_NAME , como se describe en el ejemplo siguiente.
Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
Para obtener más información sobre cómo establecer un privilegio, consulte Ejecución de operaciones con privilegios y Ejecución de operaciones con privilegios mediante VBScript. Para obtener opciones de apagado adicionales, como un cierre de sesión o un apagado forzado, consulta el método Win32Shutdown .
Ejemplos
El siguiente código VBScript cierra el equipo local.
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.Shutdown()
next
El siguiente código de Perl apaga el equipo local.
Nota
Debe tener el privilegio Shutdown para invocar correctamente el método Shutdown.
use strict;
use Win32::OLE;
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->Shutdown();
if (!defined $RetVal || $RetVal != 0)
{
print Win32::OLE->LastError, "\n";
}
}
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
El siguiente código VBScript apaga el equipo remoto especificado. Rellene REMOTE_SYSTEM_NAME con el nombre del sistema remoto que se va a apagar.
Nota
Debe tener el privilegio RemoteShutdown para invocar correctamente el método Shutdown .
Set OpSysSet = GetObject("winmgmts:{(Debug,RemoteShutdown)}//REMOTE_SYSTEM_NAME/root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
OpSys.Shutdown()
next
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows Vista |
Servidor mínimo compatible |
Windows Server 2008 |
Espacio de nombres |
Root\CIMV2 |
MOF |
|
Archivo DLL |
|