Metodo Shutdown della classe Win32_OperatingSystem

Il metodo della classe ShutdownWMI scarica programmi e DLL finché non è sicuro disattivare il computer.

In questo argomento viene utilizzata la sintassi MOF (Managed Object Format). Per altre informazioni sull'uso di questo metodo, vedere Chiamata di un metodo.

Sintassi

uint32 Shutdown();

Parametri

Questo metodo non presenta parametri.

Valore restituito

Restituisce zero (0) per indicare l'esito positivo. Qualsiasi altro numero indica un errore. Per i codici di errore, vedere Costanti errore WMI o WbemErrorEnum. Per i valori HRESULT generali, vedere Codici di errore di sistema.

Operazione riuscita (0)

Altro (1 4294967295)

Commenti

I computer occasionalmente devono essere rimossi dalla rete, ad esempio per la manutenzione pianificata, perché il computer non funziona correttamente o per completare un processo di configurazione. Ad esempio, se un server DHCP sta consegnando indirizzi IP errati, è possibile arrestare il computer fino a quando un tecnico del servizio non può essere inviato per risolvere il problema. Se si sospetta che si sia verificata una violazione della sicurezza, potrebbe essere necessario arrestare determinati server per assicurarsi che non possano essere accessibili finché il problema di sicurezza non è stato risolto. Alcune operazioni di configurazione, ad esempio la modifica di un nome computer, richiedono il riavvio del computer prima che la modifica venga applicata.

Questo metodo arresta immediatamente il computer, se possibile. Il sistema arresta tutti i processi in esecuzione, scarica tutti i buffer di file sul disco e quindi spegne il sistema. Il processo chiamante deve avere il privilegio SE_SHUTDOWN_NAME , come descritto nell'esempio seguente.

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

Per altre informazioni sull'impostazione di un privilegio, vedere Esecuzione di operazioni con privilegi ed esecuzione di operazioni con privilegi tramite VBScript. Per altre opzioni di arresto, ad esempio una disconnessione o un arresto forzato, vedi il metodo Win32Shutdown .

Esempio

Il codice VBScript seguente arresta il computer locale.

Nota

Per richiamare correttamente il metodo Shutdown, è necessario disporre del privilegio Shutdown.

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

for each OpSys in OpSysSet
 OpSys.Shutdown()
next

Il codice Perl seguente arresta il computer locale.

Nota

Per richiamare correttamente il metodo Shutdown, è necessario disporre del privilegio 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";
}

Il codice VBScript seguente arresta il computer remoto specificato. Compilare REMOTE_SYSTEM_NAME con il nome del sistema remoto da arrestare.

Nota

Per richiamare correttamente il metodo Shutdown , è necessario disporre del privilegio RemoteShutdown.

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

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Spazio dei nomi
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Vedi anche

Classi del sistema operativo

Win32_OperatingSystem

Attività WMI: Gestione desktop

Esecuzione di operazioni con privilegi tramite VBScript