Win32_StartupCommand 类

Win32_StartupCommandWMI 类表示当用户登录到计算机系统时自动运行的命令。

以下语法从托管对象格式 (MOF) 代码中简化,包括所有继承的属性。 属性和方法按字母顺序排列,而不是按 MOF 顺序排列。

语法

[Dynamic, Provider("CIMWin32"), Privileges("SeRestorePrivilege"), UUID("{8502C50A-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_StartupCommand : CIM_Setting
{
  string Caption;
  string Description;
  string SettingID;
  string Command;
  string Location;
  string Name;
  string User;
  string UserSID;
};

成员

Win32_StartupCommand 类具有以下类型的成员:

属性

Win32_StartupCommand 类具有以下属性。

Caption

数据类型: 字符串

访问类型:只读

限定符: MaxLen (64)

当前对象的简短文本说明。

此属性继承自 CIM_Setting

命令

数据类型: 字符串

访问类型:只读

限定符: MappingStrings (“Win32Registry|SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run“)

由启动命令运行的命令。

WMI 从注册表项获取此数据

\ HKEY_LOCAL_MACHINE软件\微软\窗户\CurrentVersion\运行

示例:“C:\Windows\notepad.exe myfile.txt”

描述

数据类型: 字符串

访问类型:只读

当前对象的文本说明。

此属性继承自 CIM_Setting

位置

数据类型: 字符串

访问类型:只读

限定符: keyMappingStrings (“Win32Registry|\\SOFTWARE\\MICROSOFT\\WINDOWS\\CURRENTVERSION\\Windows”)

启动命令驻留在磁盘文件系统上的路径。

例如:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

启动 (“Startup”)

Common Startup (“Common Startup”)

HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run (“HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run”)

HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunServices (“HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunServices”)

名称

数据类型: 字符串

访问类型:只读

限定符: MappingStrings (“Win32API|文件结构 |WIN32_FIND_DATA|cFileName“)

启动命令的文件名。

示例:“FindFast”

SettingID

数据类型: 字符串

访问类型:只读

限定符: MaxLen (256)

已知当前对象的标识符。

此属性继承自 CIM_Setting

用户

数据类型: 字符串

访问类型:只读

限定符: keyMappingStrings (“WMI”)

将为其运行此启动命令的用户名。

示例:“mydomain\myname”

UserSID

数据类型: 字符串

访问类型:只读

限定符: MappingStrings (“WMI”)

UserSID 属性指示将为其运行此启动命令的用户的 SID。 该 User 属性可能为空,但如果无法解析用户名,则 UserSID 仍具有一个值, (例如删除的用户) 。 属性有助于区分具有未解析名称的两个不同用户关联的命令。 当命令与未实际标识用户(如“所有用户”)的项目关联时,它可能是 NULL。

示例:S-1-5-21-1579938362-1064596589-3161144252-1006

备注

Win32_StartupCommand 类派生自 CIM_Setting

加载操作系统后,计算机启动不会结束。 相反,可以配置 Windows 操作系统,以便在每次 Windows 启动时运行启动命令。 启动命令存储在注册表中或作为用户配置文件的一部分,用于在每次加载 Windows 时自动启动指定的脚本或应用程序。

在大多数情况下,自动启动程序很有用:它们可确保在每次加载 Windows 时自动启动和运行某些应用程序(如防病毒工具)。 但是,自动启动程序也可能导致以下问题:

  • 启动时间非常长的计算机。 这可能是由于每次 Windows 启动时必须启动大量应用程序的结果。
  • 在任务栏或任务管理器中表示的应用程序,即使用户未启动它们。 尽管这些应用程序不一定会导致问题,但它们可能会导致用户拨打技术支持电话,他们对这些程序来自何处以及运行的原因感到困惑。
  • 即使计算机看起来处于空闲状态,也遇到问题。 这些问题通常跟踪到在没有人知道它们正在运行时正在运行的启动命令。

确定启动时自动运行的应用程序和脚本是一项重要但困难的管理任务,因为启动命令可以存储在许多不同的位置:

  • HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  • HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  • HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKU\ProgID\Software\Microsoft\Windows\CurrentVersion\Run
  • systemdrive\Documents and Settings\All Users\Start Menu\Programs\Startup
  • systemdrive\Documents and Settings\username\Start Menu\Programs\Startup

无论信息存储在何处,都可以使用 WMI Win32_StartupCommand 类枚举自动启动程序。

使用此类的调用进程必须在注册表所在的计算机上具有 SE_RESTORE_NAME 特权。 例如,如果在本地计算机上枚举此类,则运行应用程序的帐户必须具有此特权。 有关详细信息,请参阅 执行特权操作

可以通过在脚本或 C++ 中调用 WMI 系统注册表提供程序方法,更改Win32_StartupCommand获取数据的注册表值。 有关详细信息,请参阅 修改系统注册表

示例

以下 VBScript 枚举计算机上的启动命令。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colStartupCommands = objWMIService.ExecQuery _
 ("SELECT * FROM Win32_StartupCommand")
For Each objStartupCommand in colStartupCommands
 Wscript.Echo "Command: " & objStartupCommand.Command
 Wscript.Echo "Description: " & objStartupCommand.Description
 Wscript.Echo "Location: " & objStartupCommand.Location
 Wscript.Echo "Name: " & objStartupCommand.Name
 Wscript.Echo "SettingID: " & objStartupCommand.SettingID
 Wscript.Echo "User: " & objStartupCommand.User
Next

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
命名空间
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

另请参阅

CIM_Setting

操作系统类