Win32_OperatingSystem 類別的 Shutdown 方法
ShutdownWMI 類別方法會卸載程式和 DLL,直到關閉電腦安全性為止。
本主題使用 Managed 物件格式 (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 。
注意
您必須具有 RemoteShutdown 許可權,才能成功叫用 Shutdown 方法。
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 |
|