次の方法で共有


Win32_OperatingSystem クラスの Shutdown メソッド

ShutdownWMI クラス メソッドは、コンピューターをオフにしても安全になるまでプログラムと DLL をアンロードします。

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

構文

uint32 Shutdown();

パラメーター

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

戻り値

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

成功 (0)

その他 (1 4294967295)

注釈

コンピューターが正しく機能していないため、または構成プロセスを完了するために、スケジュールされたメンテナンスのために、コンピューターをネットワークから削除する必要がある場合があります。 たとえば、DHCP サーバーが誤った IP アドレスを渡している場合は、サービス技術者をディスパッチして問題を解決できるまでコンピューターをシャットダウンすることができます。 セキュリティ侵害が発生したと思われる場合は、セキュリティの問題が解決されるまでアクセスできないように、特定のサーバーをシャットダウンする必要がある場合があります。 一部の構成操作 (コンピューター名の変更など) では、変更が有効になる前にコンピューターを再起動する必要があります。

このメソッドは、可能であれば、すぐにコンピューターをシャットダウンします。 システムは実行中のすべてのプロセスを停止し、すべてのファイル バッファーをディスクにフラッシュしてから、システムの電源を切ります。 呼び出し元プロセスには、次の例で説明するように、 SE_SHUTDOWN_NAME 特権が必要です。

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

特権の設定の詳細については、「 特権操作の実行 」および「 VBScript を使用した特権操作の実行」を参照してください。 ログオフや強制シャットダウンなどの追加のシャットダウン オプションについては、 Win32Shutdown メソッドを参照してください。

次の VBScript コードは、ローカル コンピューターをシャットダウンします。

注意

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

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

for each OpSys in OpSysSet
 OpSys.Shutdown()
next

次の Perl コードは、ローカル コンピューターをシャットダウンします。

注意

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

次の VBScript コードは、指定されたリモート コンピューターをシャットダウンします。 REMOTE_SYSTEM_NAMEに、シャットダウンするリモート システムの名前を入力します。

注意

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

要件

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

こちらもご覧ください

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

Win32_OperatingSystem

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

VBScript を使用した特権操作の実行