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