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 填写要关闭的远程系统的名称。

注意

必须具有 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
CIMWin32.mof
DLL
CIMWin32.dll

另请参阅

操作系统类

Win32_OperatingSystem

WMI 任务:桌面管理

使用 VBScript 执行特权操作