Compartir a través de


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
CIMWin32.mof
Archivo DLL
CIMWin32.dll

Consulte también

Clases de sistema operativo

Win32_OperatingSystem

Tareas de WMI: Administración de escritorio

Ejecución de operaciones con privilegios mediante VBScript