Metodo Reboot della classe Win32_OperatingSystem

Il metodo della classe RebootWMI arresta il sistema del computer, quindi lo riavvia.

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

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

La possibilità di riavviare un computer a livello di codice consente agli amministratori di eseguire molte attività di gestione dei computer in remoto.

Ad esempio, se si crea uno script per installare il software o apportare una modifica di configurazione che richiede il riavvio di un computer, è possibile includere il comando di riavvio nello script ed eseguire l'intera operazione in remoto. Il metodo Reboot può essere utilizzato per riavviare un computer. Analogamente al metodo Win32Shutdown , il metodo Reboot richiede all'utente le cui credenziali di sicurezza vengono usate dallo script per possedere il privilegio Shutdown.

Esempio

Nell'esempio di codice VBScript seguente viene richiamato il metodo Reboot della classe Win32_OperatingSystem .

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

Il codice Perl seguente richiama il metodo Reboot della classe Win32_OperatingSystem .

Nota

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

use Win32::OLE;
use strict;
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->Reboot(); 
  if (!defined $RetVal || $RetVal != 0)
  {
   print Win32::OLE->LastError, "\n"; 
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

Il codice VBScript seguente richiama il metodo Reboot della classe Win32_OperatingSystem in un sistema remoto. Compilare REMOTE_SYSTEM_NAME con il nome del sistema remoto da riavviare.

Nota

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

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

for each OpSys in OpSysSet
 OpSys.Reboot()
next

che segue Perl richiama il metodo Reboot della classe Win32_OperatingSystem in un sistema remoto. Compilare REMOTE_SYSTEM_NAME con il nome del sistema remoto da riavviare.

Nota

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

use strict;
use Win32::OLE;

use constant REMOTE_SYSTEM_NAME => "MACHINENAME";
use constant USERNAME => "USER";
use constant PASSWORD => "PASSWORD";
use constant NAMESPACE => "root\\cimv2";
use constant wbemPrivilegeRemoteShutdown => 23;
use constant wbemImpersonationLevelImpersonate => 3;
close(STDERR);
my ($locator, $services, $OpSysSet);
eval {
  $locator = Win32::OLE->new('WbemScripting.SWbemLocator');
  $locator->{Security_}->{impersonationlevel} = wbemImpersonationLevelImpersonate;
  $services = $locator->ConnectServer(REMOTE_SYSTEM_NAME, NAMESPACE, USERNAME, PASSWORD);
  $services->{Security_}->{Privileges}->Add(wbemPrivilegeRemoteShutdown);
  $OpSysSet = $services->ExecQuery("SELECT * FROM Win32_OperatingSystem WHERE Primary=true");
 };

if (!$@ && defined $OpSysSet)
{
 foreach my $OpSys (in $OpSysSet)
 {
  $OpSys->Reboot();
 }
}
else
{
 print Win32::OLE->LastError, "\n";
 exit(1);
}

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

metodo CIM_OperatingSystem.Shutdown

Attività WMI: Gestione desktop