Windows 启动项 定义 启动项查看多种方法 两个启动文件夹+服务关联启动项的全维度对比表格,完全覆盖icacls、权限、用户态、服务关联性等要求的核心信息:

 

 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
 %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
此外,64位操作系统中,还存在一个重定向到32位的映射路径,如下:
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run	

Windows启动文件夹在权限机制用户态操作层面的详细对比表格:

对比维度 公共启动文件夹 (所有用户) C:\ProgramData\...\Startup 用户专属启动文件夹 (当前用户) C:\Users\<用户名>\AppData\Roaming\...\Startup
路径特征 系统级公共数据目录,不随用户切换而变化 用户级漫游配置目录,路径含当前登录用户名
生效范围 本机所有用户账户登录时均生效 仅当前用户账户登录时生效
核心权限模型 受保护的系统资源,默认仅 SYSTEM 和 Administrators 组拥有完全控制权。Users 组通常只有“读取与执行”权限。 用户私有目录,当前用户的 SID 拥有完全控制权。其他用户(包括其他管理员)默认无访问权限。
icacls 典型输出示例 BUILTIN\Administrators:(F)NT AUTHORITY\SYSTEM:(F)BUILTIN\Users:(RX)... 当前用户SID:(F)NT AUTHORITY\SYSTEM:(F)BUILTIN\Administrators:(F)...
用户态操作要求 必须提权。在用户态下(如资源管理器、命令行),任何增删改操作都会触发 UAC(用户账户控制) 弹窗,要求以管理员身份确认。 无需提权。当前用户在用户态下可直接进行增删改操作,不会触发UAC
用户态操作影响 修改会影响所有用户。操作需管理员密码或确认,体现了系统级配置的特性。 修改仅影响当前用户。操作由用户自主完成,体现了个人配置的特性。
典型场景 IT管理员统一部署企业必备软件(如VPN客户端、安全策略工具)。 用户个人安装的辅助工具(如快捷启动器、个性化笔记软件)。

关键概念解析

  1. icacls

    • 这是Windows内置的命令行工具,用于显示或修改文件/文件夹的权限(ACL)
    • 使用示例:在命令提示符(管理员)中运行 icacls "C:\ProgramData\..." 可查看该文件夹的详细权限列表。(F) 代表完全控制,(RX) 代表读取和执行。
  2. 权限 (Permissions)

    • 指操作系统对文件和目录的访问控制规则,决定了“哪个用户/组”能对“哪个对象”进行“什么操作”(读、写、执行等)。
    • 核心区别:公共文件夹的Users组权限被严格限制(通常仅为RX),而用户专属文件夹则赋予其所有者(当前用户)完全控制权。
  3. 用户态 (User Mode)

    • 与“内核态”相对,指用户程序和常规应用程序运行的环境,权限受限
    • 核心体现:在用户态下,普通用户进程无权直接修改受保护的系统区域(如ProgramData下的启动项)。当尝试操作时,系统会通过UAC机制,要求提升到管理员权限(即短暂进入特权模式),否则操作会被拒绝。而对用户自己的AppData目录的操作则完全在用户态权限内完成。
特性 公共启动文件夹 (ProgramData) 用户专属启动文件夹 (AppData\Roaming)
本质 系统配置(全局性) 用户配置(个人性)
权限核心 保护性权限(需管理员) 所有权权限(用户自有)
用户态门槛 (必须提权) (直接操作)
修改后果 影响全体用户 仅影响自己

ProgramData下的启动项是“大家共用的公物”,改动需经“管理员批准”;而AppData\Roaming下的启动项是“用户的私有物品”,用户可自由处置。 这种设计是Windows在多用户环境下实现配置隔离与系统保护的基础机制。


Windows 中的位置、通用启动和启动是什么?

位置(Location):在 Windows 操作系统中,位置通常指的是路径或文件夹的位置。例如,C:\Program Files 是一个位置,表示系统安装的程序文件的默认目录。

通用启动(Common Startup):通用启动是指所有用户在登录时都会执行的程序或快捷方式。这些程序或快捷方式位于操作系统的共享启动文件夹中,而不是个人用户的启动文件夹中。在 Windows 系统中,通用启动文件夹的路径通常是 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup。

启动(Startup):启动是指在每个用户登录时自动启动的程序或快捷方式。每个用户都有自己的个人启动文件夹,其中包含他们希望在登录时自动启动的应用程序或快捷方式。在 Windows 系统中,个人用户的启动文件夹通常位于 C:\Users<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup。

所以,区别在于通用启动是对所有用户有效的启动项,而启动则是针对每个用户个人的启动项。



wmic startup get Caption, Command, User
要获取 Windows 系统中的启动项以及相应的命令和用户信息,可以通过运行以下命令来使用 Windows Management Instrumentation Command-line (WMIC) 工具:

wmic startup get Caption, Command, User
运行此命令将返回一个表格,其中包含启动项的标题(Caption)、命令(Command)和用户(User)信息。每一行表示一个启动项,其中“Caption”列显示启动项的名称,如程序或服务的名称;“Command”列显示启动项的命令行或路径;“User”列显示与启动项关联的用户。

请注意,您需要以管理员身份运行命令提示符或 PowerShell 来执行该命令。



ms-settings:startupapps
"ms-settings:startupapps" 是一个 Windows 10 的 URI(统一资源标识符),用于直接打开系统设置中的“启动”应用程序页面。通过访问该 URI,您可以方便地管理在系统启动时自动运行的应用程序。

要打开该页面,您可以按照以下步骤操作:

打开运行对话框:按下 Win + R 键,或者在开始菜单中搜索并运行 "运行"。PixPin_2026-04-11_17-01-45
在运行对话框中,输入 "ms-settings:startupapps"(不包括引号),然后按下 Enter 键。
这将直接打开系统设置中的“启动”应用程序页面,其中显示了在系统启动时自动运行的应用程序列表。
在该页面上,您可以通过切换应用程序的开关来启用或禁用它们在系统启动时自动运行。您还可以查看每个应用程序的启动类型、状态以及其他相关信息。

请注意,该 URI 只适用于 Windows 10 操作系统,并且需要最新版本的 Windows 10 来支持该功能。如果您使用的是其他 Windows 版本,或者您的系统没有安装最新的更新,可能无法通过该 URI 打开对应的页面。



msinfo32-软件环境-启动程序

要查看 Windows 系统中的启动程序信息,您可以使用 "msinfo32" 工具,并按照以下步骤操作:

打开运行对话框:按下 Win + R 键,或者在开始菜单中搜索并运行 "运行"。PixPin_2026-04-11_17-01-45
在运行对话框中,输入 "msinfo32"(不包括引号),然后按下 Enter 键。
这将打开系统信息窗口,其中包含有关计算机硬件和软件的详细信息。
在左侧的导航窗格中,展开 "软件环境" 节点,并选择 "启动程序"。
在右侧的窗格中,您将看到列出的所有启动程序及其相关信息,如名称、命令、位置等。
从这个列表中,您可以查看当前系统中设置为在启动时自动运行的所有程序。您还可以对启动程序进行排序、导出信息或查找特定程序。

请注意,以管理员身份运行 "msinfo32" 可能需要对系统进行授权,因此确保您具有适当的权限来访问该信息。

 


系统配置工具(System Configuration):

打开运行对话框:按下 Win + R 键。PixPin_2026-04-11_17-01-45
在运行对话框中,输入 "msconfig"(不包括引号),然后按下 Enter 键。
系统配置工具窗口将打开。
切换到“启动”选项卡。
在该选项卡上,您将看到列出的所有启动项以及它们的状态(启用或禁用)。
注册表编辑器(Registry Editor):

打开运行对话框:按下 Win + R 键。PixPin_2026-04-11_17-01-45
在运行对话框中,输入 "regedit"(不包括引号),然后按下 Enter 键。
注册表编辑器窗口将打开。
导航到以下注册表路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (仅查看当前用户的启动项) 或 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run (查看所有用户的启动项)
在右侧窗格中,您将看到注册表中列出的所有启动项及其对应的值。

两个启动文件夹+两个注册表Run启动项,重点突出icacls、权限、用户态特性的对比表格:

对比维度 公共启动文件夹(所有用户共享)C:\ProgramData\...\Startup 用户专属启动文件夹(当前用户私有)C:\Users\<用户名>\AppData\...\Startup 当前用户注册表启动项HKCU\Software\Microsoft\Windows\CurrentVersion\Run 本地机器注册表启动项HKLM\Software\Microsoft\Windows\CurrentVersion\Run
存储类型 文件系统(系统公共目录) 文件系统(用户私有目录) 注册表(用户专属配置单元) 注册表(系统全局配置单元)
生效范围 本机所有用户账户登录时均生效 仅当前登录用户账户生效 仅当前登录用户账户生效 本机所有用户账户登录时均生效
默认所有者 NT AUTHORITY\SYSTEM/TrustedInstaller 当前登录用户的SID 当前登录用户的SID NT AUTHORITY\SYSTEM/TrustedInstaller
默认icacls权限输出(核心项) SYSTEM:(F)Administrators:(F)Users:(RX)其余用户无权限 当前用户SID:(F)SYSTEM:(F)Administrators:(F)其余用户无权限 当前用户SID:(F)SYSTEM:(F)Administrators:(F)其余用户无权限 SYSTEM:(F)Administrators:(F)Users:(RX)其余用户无权限
权限核心规则 受系统保护的全局资源,普通用户仅拥有「读取+执行」权限,无写入权 用户私有资源,所有者(当前用户)拥有完全控制权,其他用户默认无权限 用户私有配置,所有者(当前用户)拥有完全控制权,其他用户默认无权限 受系统保护的全局资源,普通用户仅拥有「读取」权限,无写入权
用户态操作要求 必须提权(管理员权限),普通用户态下无法写入 无需提权,当前用户态下可直接读写 无需提权,当前用户态下可直接读写 必须提权(管理员权限),普通用户态下无法写入
UAC触发情况 增删改操作100%触发UAC弹窗 增删改操作不触发UAC 增删改操作不触发UAC 增删改操作100%触发UAC弹窗
操作影响范围 修改会影响本机所有用户的启动行为 修改仅影响当前用户的启动行为 修改仅影响当前用户的启动行为 修改会影响本机所有用户的启动行为
典型适用场景 企业统一部署的全用户必备工具(如VPN、安全审计工具) 当前用户个人专属的启动工具(如个性化笔记、快捷启动器) 当前用户个人安装的软件自动生成的启动项(如聊天软件、云同步工具) 系统全局必备的启动服务/工具(如杀毒引擎、硬件驱动辅助程序)

关键词补充说明

  1. icacls 是Windows系统自带的命令行工具,用于查看/修改文件、文件夹、注册表项的访问控制列表(ACL,即权限规则),表格中的(F)代表「完全控制权限」,(RX)代表「仅读取+执行权限」,可通过命令icacls 路径直接查询对应位置的权限。
  2. 权限 此处指Windows的ACL访问控制机制:全局启动位置(公共启动文件夹、HKLM Run)的权限被收归系统管理员和SYSTEM账户,普通用户无写入权;用户私有启动位置的权限归当前用户所有,可自由操作,无需额外授权。
  3. 用户态 是Windows进程运行的非特权环境,普通用户登录后打开的所有程序默认都在用户态运行,权限受当前用户的ACL限制,无法修改受保护的全局资源;只有手动提权后才会获得管理员权限,暂时突破用户态的限制。

注意事项

  • 若要在全局启动位置写入启动项,必须在用户态下手动触发UAC提权,否则操作会被系统直接拒绝;
  • 用户私有启动项(用户专属启动文件夹、HKCU Run)无需管理员权限即可写入,也是恶意软件常用的启动项投放位置;
  • 微软账户登录的Windows设备中,用户私有启动项会随账号漫游同步到其他设备,全局启动项不会同步。

两个启动文件夹+服务关联启动项的全维度对比表格,完全覆盖icacls、权限、用户态、服务关联性等要求的核心信息:

对比维度 公共启动文件夹(所有用户共享)C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 用户专属启动文件夹(当前用户私有)C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 服务关联启动项(Services绑定配置)(含注册表RunServices项+系统服务启动类型配置)
存储类型 文件系统(系统公共数据目录) 文件系统(用户私有漫游配置目录) 注册表(HKLM系统级配置单元)+ 服务控制管理器(SCM)核心数据库
生效范围 本机所有用户账户登录时自动生效 仅当前登录的用户账户生效 分两类:① RunServices注册表项:所有用户登录时生效② 服务启动配置:系统启动阶段即生效,与用户是否登录无关
默认icacls权限输出(核心标识) BUILTIN\Administrators:(F)NT AUTHORITY\SYSTEM:(F)NT AUTHORITY\TrustedInstaller:(F)BUILTIN\Users:(RX)其余账户无权限 当前用户SID:(F)NT AUTHORITY\SYSTEM:(F)BUILTIN\Administrators:(F)其余账户默认无权限 注册表项默认权限:NT AUTHORITY\SYSTEM:(F)BUILTIN\Administrators:(F)BUILTIN\Users:(RX)服务配置仅SYSTEM/Administrators可修改
权限核心规则 受系统保护的全局公共资源,普通用户仅拥有「读取+执行」权限,无写入权 用户私有资源,当前用户作为所有者拥有完全控制权,其他用户默认无访问/写入权限 系统级核心配置,属于服务运行的底层规则,普通用户无任何写入权限,仅系统和服务本身可修改
用户态操作要求 普通用户态下无法写入,必须提权为管理员身份才能操作 当前用户无需提权,可直接在用户态下完成读写操作 普通用户态下完全无法修改,必须提权为管理员,部分核心服务甚至需要系统级授权才能修改配置
UAC触发情况 增删改操作100%触发UAC提权弹窗 增删改操作不触发UAC 修改配置100%触发UAC,修改系统核心服务需额外验证管理员身份
启动时机与运行环境 用户登录后、资源管理器初始化时执行,运行在当前用户会话的用户态,用户注销后进程自动终止 用户登录后、资源管理器初始化时执行,运行在当前用户会话的用户态,用户注销后进程自动终止 ① RunServices项:用户登录时执行,默认运行在会话0的服务态② 自动启动服务:系统内核初始化完成后、用户登录前即启动,运行在会话0的服务态,默认无用户界面,用户注销后继续运行
与Windows服务的关联性 本身不是服务配置,其中的可执行文件如果需要后台常驻、用户注销后继续运行,需自行注册为系统服务,否则仅临时运行在当前用户会话 本身不是服务配置,其中的可执行文件如果需要后台常驻、用户注销后继续运行,需自行注册为系统服务,否则仅临时运行在当前用户会话 本身就是服务的启动配置,直接关联系统服务/驱动的生命周期,启动的是服务进程,受服务控制管理器(SCM)统一调度
操作影响范围 修改会影响本机所有用户的启动行为 修改仅影响当前用户的启动行为 修改会影响对应服务的所有运行实例,全局服务修改会影响本机所有用户的操作体验
典型适用场景 企业统一部署的全用户公共工具(如VPN客户端、公司统一安全审计工具、公共打印驱动辅助程序) 当前用户个人专属的启动工具(如快捷启动器、个性化笔记、个人云同步客户端) 系统核心服务(如Windows Defender、打印服务、Windows更新服务)、企业级后台常驻服务(如域控同步服务、数据库服务)

关键概念补充说明

1. icacls 说明

icacls是Windows内置的权限管理工具,既可以查询文件/文件夹的ACL权限,也支持查询注册表项的权限,输出的权限标识含义统一:

  • (F):完全控制权限,可读写、修改、删除对象
  • (RX):读取+执行权限,仅可查看和运行对象,无法修改
  • 可直接通过命令行查询对应位置的权限,比如:
    cmd
    :: 查询公共启动文件夹权限
    icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
    :: 查询用户专属启动文件夹权限
    icacls "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup"
    :: 查询RunServices注册表项权限
    icacls "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices"

2. 权限机制说明

Windows通过ACL(访问控制列表)实现细粒度权限控制:

  • 全局公共配置(公共启动文件夹、服务配置)的权限被收归SYSTEMAdministrators组,普通用户仅拥有最低的读取权限,无法修改;
  • 用户私有配置(用户专属启动文件夹)的权限归当前用户所有,可自由操作,无需额外授权。

3. 用户态说明

Windows进程运行环境分为两类:

  • 用户态:普通应用程序的运行环境,权限受当前用户的ACL限制,无法直接修改受保护的全局配置,仅能操作当前用户有权限的资源;
  • 服务态(会话0):系统级服务的运行环境,权限远高于用户态,默认无用户界面,受SCM统一调度,不属于用户态范畴。

4. 三类启动项的关联逻辑

  • 启动文件夹本质是「用户态快捷启动入口」,仅负责用户登录时自动启动可执行文件,不控制进程生命周期;
  • 如果启动文件夹中的可执行需要后台常驻、用户注销后继续运行,开发者会将其注册为系统服务,此时该程序既会出现在启动文件夹中(用于用户会话快速启动),也会出现在服务关联启动项中(用于后台常驻调度);
  • 恶意软件常利用用户专属启动文件夹投放启动项,因为不需要管理员权限即可写入,不会被UAC拦截,门槛极低。

PowerShell 中查询所有 Windows 启动项(即启动时自动运行的程序),我们可以利用 Windows 注册表和其他工具来获取这些信息。启动项通常存储在几个注册表路径中,还可以通过任务计划程序来管理。

下面是一个完整的 PowerShell 脚本,该脚本可以帮助你查询所有 Windows 启动项,包括从注册表、任务计划和启动文件夹等位置获取的启动项。

1. PowerShell 查询 Windows 启动项

powershell
# 获取所有注册表中的启动项
$startupRegistryPaths = @(
    "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run",   # 当前用户的启动项
    "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run",   # 所有用户的启动项(需要管理员权限)
    "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce",   # 启动一次的项
    "HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce"    # 当前用户的启动一次项
)

# 显示启动项的函数
function Show-StartupItems {
    param (
        [string[]]$paths
    )

    foreach ($path in $paths) {
        Write-Host "`n查询注册表路径: $path"
        try {
            # 获取启动项信息
            $startupItems = Get-ItemProperty -Path $path
            $startupItems.PSObject.Properties | ForEach-Object {
                Write-Host "$($_.Name) => $($_.Value)"
            }
        } catch {
            Write-Host "访问路径 $path 时出现错误,可能需要管理员权限。"
        }
    }
}

# 查询并显示注册表中的启动项
Show-StartupItems -paths $startupRegistryPaths

# 获取用户的启动文件夹
$startupFolder = [System.Environment]::GetFolderPath("Startup")
Write-Host "`n查询启动文件夹: $startupFolder"

# 获取启动文件夹中的所有文件
$startupFiles = Get-ChildItem -Path $startupFolder
$startupFiles | ForEach-Object {
    Write-Host "$($_.Name) => $($_.FullName)"
}

# 获取任务计划中的启动项(任务计划程序)
Write-Host "`n查询任务计划中的启动项..."
$scheduledTasks = Get-ScheduledTask | Where-Object { $_.Actions -match 'start' }
$scheduledTasks | ForEach-Object {
    Write-Host "$($_.TaskName) => $($_.State) => $($_.Actions)"
}

2. 脚本解释

  1. 查询注册表中的启动项

    • 启动项通常位于以下注册表路径:
      • HKCU:\Software\Microsoft\Windows\CurrentVersion\Run:当前用户的启动项
      • HKLM:\Software\Microsoft\Windows\CurrentVersion\Run:所有用户的启动项(需要管理员权限)
      • HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce:当前用户的“一次性”启动项
      • HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce:所有用户的“一次性”启动项(需要管理员权限)

    Get-ItemProperty 用来获取这些路径下的启动项,并列出其名称和值。

  2. 查询启动文件夹: 启动文件夹通常位于:

    • 当前用户的启动文件夹:[System.Environment]::GetFolderPath("Startup") 使用 Get-ChildItem 获取文件夹中的文件,显示在启动时自动运行的程序。
  3. 查询任务计划中的启动项: 有些程序可能通过任务计划程序设置为启动。使用 Get-ScheduledTask 获取系统中的计划任务,并筛选出匹配启动条件的任务。

3. 执行脚本

  1. 将上述 PowerShell 脚本保存为 .ps1 文件(例如 Get-StartupItems.ps1)。
  2. 使用管理员权限打开 PowerShell。
  3. 如果执行策略未设置为允许脚本执行,可以运行以下命令来启用脚本:
    powershell
    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  4. 运行脚本:
    powershell
    .\Get-StartupItems.ps1

4. 结果展示

执行脚本后,你会看到来自不同来源的启动项,例如:

  • 注册表中的启动项:显示每个启动项的名称和值,表示在 Windows 启动时会运行的程序。
  • 启动文件夹中的程序:列出放在启动文件夹中的程序。
  • 任务计划中的启动项:列出所有由任务计划程序管理的启动项。

5. 管理员权限

  • HKLM(本地计算机)的注册表项需要管理员权限来访问,因此在运行脚本时可能需要使用管理员权限。

6. 补充说明

  • 启动项查询主要依赖于注册表、启动文件夹和任务计划。如果某些程序没有显示在这些位置,它们可能会使用其他方式进行自动启动(例如通过服务、应用商店应用等)。

通过这个 PowerShell 脚本,你可以全面了解和管理 Windows 启动项,帮助你监控哪些程序会随系统启动而运行。


在 Windows 系统中,除了通过 注册表启动文件夹任务计划程序 配置的启动项外,实际的启动项来源还包括以下几种补充的方式:

1. 服务(Services)启动项

Windows 系统会在启动时加载一些服务,这些服务通常不是通过用户界面启动的,而是由系统或应用程序自动注册。服务通常通过 Windows 服务管理器 (Services.msc) 进行管理。

  • 服务启动项:这些是操作系统或第三方应用注册的服务,会在系统启动时或某些条件满足时自动启动。服务可以设置为“自动”、“手动”或“禁用”。

  • 查看服务启动项

    powershell
    Get-Service | Where-Object { $_.StartType -eq "Automatic" }

    这个命令会列出所有设置为自动启动的服务。许多系统级服务(如 Windows Update、Windows Defender)在启动时会自动启动。

  • 查看正在运行的服务

    powershell
    Get-Service | Where-Object { $_.Status -eq "Running" }

    这会显示当前正在运行的服务。

2. Windows 任务计划程序(Task Scheduler)

除了启动文件夹和注册表之外,Windows 任务计划程序也能自动启动程序和脚本。任务计划程序允许更复杂的启动条件,如按时间、事件、系统事件等触发。

  • 通过任务计划启动项: 任务计划程序可以设置程序在系统启动时执行,或在特定时间、事件发生时执行。你可以通过 PowerShell 或任务计划程序的图形界面管理这些任务。

  • 查看所有计划任务

    powershell
    Get-ScheduledTask

    该命令将列出系统中所有的计划任务,可以进一步筛选出启动时触发的任务。

  • 查看某个任务的详细信息

    powershell
    Get-ScheduledTask | Where-Object { $_.TaskName -eq "TaskName" }

3. 组策略(Group Policy)

组策略是 Windows 中的另一个重要工具,可以配置一些启动时的行为。管理员可以通过组策略设置计算机启动时执行特定的脚本或程序。

  • 启动脚本:可以通过组策略的“计算机配置”或“用户配置”中的“Windows 设置”部分设置启动脚本。例如,在 计算机配置 > Windows 设置 > 脚本(启动/关闭) 下配置启动时执行的批处理文件或 PowerShell 脚本。

  • 查看组策略启动项: 你可以使用 gpedit.mscrsop.msc 查看和编辑组策略设置,特别是启动脚本部分。

4. Windows 任务栏、开始菜单及快捷方式

除了常见的启动文件夹和注册表位置外,一些程序会在 任务栏开始菜单 中创建快捷方式,通常这些快捷方式会被配置为自动启动。

  • 查看任务栏快捷方式: 这些快捷方式通常存储在 C:\Users\<username>\AppData\Roaming\Microsoft\Internet Explorer\Quick LaunchC:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 目录下。

  • 查看开始菜单中的自动启动项: 一些程序也可以被设置为在登录时自动显示在开始菜单中的“启动”项上。这些项通常存放在启动文件夹中,或由注册表配置。

5. Windows 注册表 - 更深层次的启动项

除了常见的启动项路径,Windows 注册表还包含了其他一些位置,其中可能有一些影响系统启动行为的配置。

  • 其他注册表路径
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run(适用于 32 位应用在 64 位系统上的安装)

这些位置可能会被用来注册自启动程序,并且通常在安装某些应用程序时会自动添加。

6. Shell 启动项

Windows 使用 shell(资源管理器)来启动系统上的应用程序,某些程序可能会利用 shell 来注册启动项。例如,利用 Windows 注册表的 Explorer 键(HKEY_CLASSES_ROOT\exefile\shell\open\command)来配置默认的执行命令。

7. 安全启动项(Antivirus or Security Software)

安全软件和防病毒软件通常会在系统启动时加载,以确保系统的安全性。它们的启动项可能不容易通过普通的注册表或任务计划工具找到,通常需要从特定的服务或配置文件中查找。

  • 你可以通过查看防病毒软件的日志或配置文件,或者使用 PowerShell 来检查它们是否在启动时运行:
    powershell
    Get-Process | Where-Object { $_.Name -match "antivirus|security" }

8. UAC(用户账户控制)相关启动项

UAC 在某些情况下也会影响启动项的管理,特别是某些程序需要高权限才能启动时。虽然 UAC 本身不会直接启动程序,但它会影响那些被标记为需要管理员权限的启动项。这些项通常通过服务、计划任务或指定的程序以提升权限的方式执行。

Windows 启动项不仅包括常见的注册表、任务计划程序和启动文件夹,还可以通过多种方式管理。需要考虑以下几种补充方式来全面检查启动项:

  1. 服务启动项:通过服务管理器(services.msc)管理。
  2. 任务计划程序:通过任务计划程序创建的启动任务。
  3. 组策略:由系统管理员配置的启动脚本和程序。
  4. 快捷方式:任务栏、开始菜单的快捷方式。
  5. 注册表其他位置:除了常见的 Run 键,还有 Policies 和 RunOnce 等位置。
  6. Shell 启动项:与资源管理器和系统执行相关的启动项。
  7. 安全软件和防病毒软件的启动项

如果你需要全面检查系统中的启动项,可以通过 PowerShell 脚本遍历所有这些位置,确保你获取到每个潜在的启动项来源。


 

posted @ 2023-06-30 04:42  suv789  阅读(1889)  评论(0)    收藏  举报