次の方法で共有


Win32_OperatingSystem クラスの Reboot メソッド

RebootWMI クラス メソッドは、コンピューター システムをシャットダウンし、再起動します。

このトピックでは、マネージド オブジェクト形式 (MOF) 構文を使用します。 このメソッドの使用方法の詳細については、「メソッドの 呼び出し」を参照してください。

構文

uint32 Reboot();

パラメーター

このメソッドにはパラメーターはありません。

戻り値

成功を示す 0 を返します。 それ以外の数値はエラーを示します。 エラー コードについては、「 WMI エラー定数 」または 「WbemErrorEnum」を参照してください。 一般的な HRESULT 値については、「 システム エラー コード」を参照してください。

成功 (0)

その他 (1 4294967295)

注釈

コンピューターをプログラムで再起動する機能により、管理者は多くのコンピューター管理タスクをリモートで実行できます。

たとえば、ソフトウェアをインストールするスクリプトを作成したり、コンピューターの再起動を必要とする構成を変更したりする場合は、スクリプトに restart コマンドを含め、操作全体をリモートで実行できます。 Reboot メソッドを使用して、コンピューターを再起動できます。 Win32Shutdown メソッドと同様に、Reboot メソッドでは、スクリプトでセキュリティ資格情報が使用されているユーザーが Shutdown 特権を持っている必要があります。

次の VBScript コード サンプルでは、 Win32_OperatingSystem クラスの Reboot メソッドを呼び出します。

注意

Shutdown メソッドを正常に呼び出すには、Shutdown 特権が必要です。

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

for each OpSys in OpSysSet
 OpSys.Reboot()
next

次の Perl コードは、 Win32_OperatingSystem クラスの Reboot メソッドを呼び出します。

注意

Shutdown メソッドを正常に呼び出すには、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";
}

次の VBScript は、リモート システム上の Win32_OperatingSystem クラスの Reboot メソッドを呼び出します。 再起動するリモート システムの名前をREMOTE_SYSTEM_NAMEに入力します。

注意

Reboot メソッドを正常に呼び出すには、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

Perl に従って、リモート システム上の Win32_OperatingSystem クラスの Reboot メソッドを呼び出します。 再起動するリモート システムの名前をREMOTE_SYSTEM_NAMEに入力します。

注意

Reboot メソッドを正常に呼び出すには、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);
}

要件

要件
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
名前空間
Root\CIMV2
MOF
CIMWin32.mof
[DLL]
CIMWin32.dll

こちらもご覧ください

オペレーティング システム クラス

Win32_OperatingSystem

CIM_OperatingSystem.Shutdown メソッド

WMI タスク: デスクトップ管理