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