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