如何提前启动自动运行程序?

如何提前启动自动运行程序?

我们有想要在登录过程的早期运行的软件。该软件会修改或隐藏用户桌面的某些元素,并且用户永远不应该看到未修改的桌面。

现在,在 Windows 7 上,只需通过自动启动启动该软件即可;显示桌面时该软件已经处于活动状态。

但是对于 Windows 10,该软件是在桌面首次显示后几秒钟启动的,因此对于我们的目的来说太晚了。

有没有办法可以提早启动软件或者延迟桌面?

PS:我们正在制作类似自助服务终端的嵌入式机器,所以我们确实想这样做。

答案1

这个 stackoverflow 问题,最好的办法是将程序作为服务运行。一种选择是使用国家安全监测中心答案中的相关部分:

来源:了解启动过程 - Windows 7 教程

Windows 7的正常启动顺序是:

  1. 开机自检 (POST) 阶段
  2. 初始启动阶段
  3. Windows 启动管理器阶段
  4. Windows 启动加载程序阶段
  5. 内核加载阶段
  6. 登录阶段

对初创企业可以采取的不同路径的概述

内核加载阶段 Windows 引导加载程序负责将 Windows 内核 ( Ntoskrnl.exe) 和 HAL 加载到内存中。内核和 HAL 一起初始化一组称为 Windows 执行程序的软件功能。Windows 执行程序处理存储在注册表中的配置信息并 HKLM\SYSTEM\CurrentControlSet启动服务和驱动程序。以下部分提供有关内核加载阶段的更多详细信息。

登录阶段

Windows 子系统启动Winlogon.exe,这是一项使您能够登录和注销的系统服务。Winlogon.exe然后执行以下操作:

  • 启动服务子系统 ( Services.exe),也称为 SCM。SCM 初始化注册表项 Start 在注册表子项 中指定为自动加载的服务 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Servicename
  • 启动本地安全机构 (LSA) 进程 ( Lsass.exe)。
  • 在开始登录提示符下解析 ++ 组合键(如果计算机是 AD DS 域的一部分)CtrlAltDelete

登录用户界面 (LogonUI) 功能和凭据提供程序(可以是标准凭据提供程序或第三方凭据提供程序)收集用户名和密码(或其他凭据),并将此信息安全地传递给 LSA 进行身份验证。如果用户提供了有效的凭据,则使用默认的 Kerberos V 5 身份验证协议或 Windows NT LAN Manager (NTLM) 授予访问权限。

Winlogon 初始化安全和身份验证功能,而 PnP 初始化自动加载服务和驱动程序。用户登录后,注册表项LastKnownGood (位于HKLM\SYSTEM\Select)引用的控件集将使用子项中的内容进行更新 CurrentControlSet。默认情况下,Winlogon 随后启动 Userinit.exeWindows 资源管理器外壳。Userinit 随后可能会启动其他进程,包括:

  • 组策略设置生效适用于用户和计算机的组策略设置生效。
  • 启动程序运行当未被组策略设置覆盖时,Windows 将启动以下注册表子项和文件系统文件夹中引用的登录脚本、启动程序和服务:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
    SystemDrive\Documents and Settings\All Users\Start Menu\Programs\Startup
    SystemDrive\Documents and Settings\username\Start Menu\Programs\Startup
    

安装 Windows 后,可能会将多个应用程序配置为默认启动,其中包括 Windows Defender。计算机制造商或 IT 部门可能会配置其他启动应用程序。

直到用户成功登录计算机后,Windows 启动才算完成。如果在登录阶段启动失败,则说明配置为自动启动的服务或应用程序存在问题。

相关内容