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。
-
-
位置
-
-
数据类型: 字符串
-
访问类型:只读
-
限定符: key、 MappingStrings (“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。
用户
-
数据类型: 字符串
-
访问类型:只读
-
限定符: key、 MappingStrings (“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 |
|
DLL |
|
另请参阅