Método shutdown da classe Win32_OperatingSystem

O método de classe WMIShutdown descarrega programas e DLLs até que seja seguro desativar o computador.

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 Shutdown();

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.

Êxito (0)

Outro (1 4294967295)

Comentários

Ocasionalmente, os computadores precisam ser removidos da rede, talvez para manutenção agendada, porque o computador não está funcionando corretamente ou para concluir um processo de configuração. Por exemplo, se um servidor DHCP estiver distribuindo endereços IP incorretos, talvez você queira desligar o computador até que um técnico de serviço possa ser enviado para corrigir o problema. Se você suspeitar que ocorreu uma violação de segurança, talvez seja necessário desligar determinados servidores para garantir que eles não possam ser acessados até que o problema de segurança seja resolvido. Algumas operações de configuração (como alterar um nome de computador) exigem que você reinicie o computador antes que a alteração entre em vigor.

Esse método desliga imediatamente o computador, se possível. O sistema interrompe todos os processos em execução, libera todos os buffers de arquivo para o disco e, em seguida, alimenta o sistema. O processo de chamada deve ter o privilégio SE_SHUTDOWN_NAME , conforme descrito no exemplo a seguir.

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

Para obter mais informações sobre como definir um privilégio, consulte Executando operações privilegiadas e executando operações privilegiadas usando o VBScript. Para obter opções de desligamento adicionais, como um logoff ou um desligamento forçado, consulte o método Win32Shutdown .

Exemplos

O código VBScript a seguir desliga o computador local.

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.Shutdown()
next

O código Perl a seguir desliga o computador local.

Observação

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

O código VBScript a seguir desliga o computador remoto especificado. Preencha REMOTE_SYSTEM_NAME com o nome do sistema remoto a ser desligado.

Observação

Você deve ter o privilégio RemoteShutdown para invocar com êxito o 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 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

Tarefas do WMI: Gerenciamento de Área de Trabalho

Executando operações privilegiadas usando o VBScript