Metodo Reboot della classe Win32_OperatingSystem
Il metodo della classe REBOOTWMI arresta il sistema computer, quindi lo riavvia.
Questo argomento usa 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 di errore WMI o WbemErrorEnum. Per i valori HRESULT generali, vedere Codici di errore di sistema.
-
Successo (0)
-
Altro (1 4294967295)
Commenti
La possibilità di riavviare a livello di codice un computer consente agli amministratori di eseguire molte attività di gestione computer in remoto.
Ad esempio, se si crea uno script per installare 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 usato per riavviare un computer. Come il metodo Win32Shutdown , il metodo Reboot richiede all'utente le cui credenziali di sicurezza vengono usate dallo script per avere il privilegio Shutdown.
Esempio
L'esempio di codice VBScript seguente richiama il metodo Reboot della classe Win32_OperatingSystem .
Nota
È necessario disporre del privilegio Shutdown per richiamare correttamente il metodo 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
È necessario disporre del privilegio Shutdown per richiamare correttamente il metodo 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
È necessario disporre del privilegio RemoteShutdown per richiamare correttamente il metodo Reboot
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
dopo 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
È necessario disporre del privilegio RemoteShutdown per richiamare correttamente il metodo Reboot.
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 |
Radice\CIMV2 |
MOF |
|
DLL |
|