ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Windows开机启动项管理:查全注册表、计划任务、服务与自启配置

Windows开机启动项管理:查全注册表、计划任务、服务与自启配置 很多人对 Windows 开机启动的理解就停在任务管理器那个启动标签页上。打开、右键、禁用收工。可实际折腾几年你会发现那个列表顶多覆盖了真实自启机制的一半——剩下的一半藏在计划任务的触发器里、藏在服务的恢复选项里、藏在一条你根本没注意过的注册表二进制值里。所以经常出现这种场面任务管理器里干干净净开机该弹的还是弹该慢的还是慢。这篇东西就是把我这些年整理 Windows 启动项管理的一套完整流程摊开来讲。核心围绕三件事把启动项查全、判断哪些能动哪些不能动、反过来把自己的程序正确地做成开机自启。不区分你是普通用户想给笔记本减负还是运维要在一台无人值守的机器上保证服务准时起来下面的路径都能直接抄。文中提到的工具和命令都是通用做法具体路径以你机器上的实际情况为准。1. 开机启动项到底藏在哪六个真实落点1.1 两个启动文件夹差别比你想的大先从这个最直观的地方说起。Windows 的启动文件夹其实有两个一个是用户级的一个是全局的。用户级%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup在资源管理器地址栏敲shell:startup直接跳过去。这个目录下的快捷方式只对当前登录用户生效权限要求低绝大多数把快捷方式拖进去就能自启的做法用的都是它。全局级%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp对应命令shell:common startup。这里面的东西对所有用户生效写入需要管理员权限。区别不只是权限。用户级启动项在登录过程中加载全局级的会稍微早一点被处理更关键的是用户级目录属于用户配置文件的一部分做漫游配置文件或者重装系统只保留数据盘的时候这里的快捷方式往往就丢了。给客户做无人值守设备的时候我一般优先写全局目录省得后面换账号登录发现程序不启动。还有一个坑这两个目录里的快捷方式本身只是指向目标程序真正的启动参数写在快捷方式的目标字段后半段。有些软件卸载后会留下一个断掉的快捷方式图标变白双击提示找不到文件——这种残留不影响性能但会让人误以为有启动项存在。删之前先右键看一下属性里的目标路径是不是还存在。1.2 注册表里的 Run 家族五个键位别漏启动文件夹之外最常见的自启方式就是注册表。真正需要记住的是下面这几个位置很多人只查前两个剩下三个常年漏掉键位路径作用范围备注HKCU\Software\Microsoft\Windows\CurrentVersion\Run当前用户用户级软件最常用HKLM\Software\Microsoft\Windows\CurrentVersion\Run所有用户需管理员权限写入HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run所有用户32 位程序在 64 位系统上的落点HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce所有用户只执行一次执行完自动删除HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce当前用户同上RunOnce这个键特别值得单独说。它设计上是一次性执行的但如果你用了!前缀比如!UpdaterWindows 会等这条命令执行完成之后才继续启动流程如果用了*前缀即使命令失败也会被删掉。有相当一部分软件的更新器就是靠往这里写一条记录在下次开机时装完更新然后自己消失。所以你如果发现某个软件明明已经删了开机还会蹦出一个安装进度条先来这里看一眼。WOW6432Node那个键是 32 位程序在 64 位系统上的重定向位置。用 32 位的注册表编辑器打开会直接看到正常的路径用 64 位的会看到WOW6432Node。两个都查别嫌麻烦。1.3 计划任务真正的顽固启动项大本营如果只能记住一个地方那就是计划任务。任务管理器里的启动项可以一键禁用但计划任务里的自启项任务管理器根本不显示。打开方式taskschd.msc或者开始菜单搜任务计划程序。重点看左侧任务计划程序库的根节点和各个厂商自建的文件夹通常以公司名命名比如某个输入法、某个手机助手都会有自己的文件夹。\Microsoft\Windows\...下面的是系统自带任务大部分不要动。判断一个任务是不是自启项直接看它的触发器标签登录时/启动时典型的开机自启绝大部分第三方软件都挂这两种。工作站解锁时藏在解锁之后才跑容易漏。按计划 重复间隔这种最阴。触发器只写登录时然后在下面勾了重复任务间隔30 分钟持续时间无限期。意思是登录后每半小时拉一次你的进程。这就是为什么有些东西你杀了进程它还回来、你在任务管理器里禁用了它照样起来。还有一种更隐蔽的任务的条件标签里勾了只有在计算机使用交流电源时才启动或只有在以下网络连接可用时才启动导致你测试的时候看着它不启动用户那边一插电源就启动排查起来非常费劲。1.4 服务与驱动权限最高、破坏力也最大的一层服务services.msc是另一类自启机制。严格来说服务不算登录时启动项它是系统启动过程中由服务控制管理器拉起来的但用户感知是一样的——一开机它就在跑。服务的启动类型分几档自动、自动延迟启动、手动、禁用。自动延迟启动是 Vista 之后引入的系统会等核心服务都起来之后再拉它开机速度会好看一些代价是程序可用时间往后推。很多数据库、Web 服务默认装成自动启动如果机器上装着好几套这类东西开机慢很大程度上是它们互相抢磁盘 IO。服务还有个恢复标签页这里才是关不掉的真相。默认配置是第一次失败不操作但很多软件安装时会改成重新启动服务并且把重启间隔设成 1 分钟。你以为结束了进程就完事一分钟后服务把它又拉起来了。所以对付顽固启动项光看启动类型不够恢复选项必须一起看。驱动类的东西显示为内核驱动程序在服务列表里默认不显示需要借助工具才能看到这一层后面单独讲。1.5 UWP 应用与 StartupApproved 的开关逻辑现代 Windows 上还有一类自启来自应用商店的应用。它们的开关不在注册表 Run 键里而是记在HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\RunHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run32HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder这些键里每一项的值是二进制数据REG_BINARY正常是 12 个字节。第一个字节是状态位02开头表示启用03开头表示禁用后面 8 个字节一般记录被禁用的时间戳。你在任务管理器里点禁用改的就是这里。反过来如果一个启动项你从注册表 Run 键里删掉了但 StartupApproved 里还留着对应记录那也不会有影响只是一条无用的残迹。理解这一层的意义在于当你需要批量处理、或者要在脚本里判断某个启动项是不是被禁用了读这个键比读任务管理器的界面可靠得多。1.6 那些不走寻常路的自启位置剩下还有一些非常规落点平时不用管但排查疑难杂症时必须想到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的Userinit和Shell正常情况下分别是userinit.exe,和explorer.exe被改过就说明有问题。HKLM\SYSTEM\CurrentControlSet\Control\Session Manager下的BootExecute负责启动时的磁盘检查之类。HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects浏览器插件。HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks和ShellIconOverlayIdentifiers资源管理器扩展某些网盘、版本控制工具会往这里塞东西。HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components每个用户首次登录时执行一次的StubPath。HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options调试器劫持正常软件不会用。这些位置不需要你天天去看但只要遇到查遍了 Run 键和计划任务还是找不到元凶的情况从这份清单往下捋基本跑不掉。2. 用四把筛子把启动项查干净2.1 任务管理器能干什么不能干什么先把话说清楚任务管理器的启动标签并不是没用它有两个别的地方给不了的信息——启动影响评级高/中/低和上次 BIOS 时间。前者是微软基于历史启动数据给的估算虽然粗糙但用来决定先关哪个够用了后者在你验证优化效果时可以直接对比省得自己掐表。它的盲区也很明确不显示服务、驱动、计划任务。不显示Wow6432Node下的部分条目视系统版本而定。不显示RunOnce。已经禁用的项目会折叠在一个已禁用区域里容易被忽略导致重复排查。所以正确用法是把它当第一道粗筛快速拿到这个用户登录会跑哪些东西的概览然后拿下面几个工具补全。2.2 Autoruns一次扫全重点看这几个开关微软自家的 Sysinternals 套件里的 Autoruns是这一类工具里最全的一个覆盖了前面说的几乎所有位置还能验证数字签名。首次运行要接受许可协议。打开之后先别急着看列表去Options菜单做三件事勾上Hide Microsoft Entries或Hide Signed Microsoft Entries把系统自带的东西过滤掉。这一下能砍掉一大半噪音。勾上Verify Code Signatures未签名的项目会标红或标黄这是判断可疑项最直接的信号。在Options里确认Scan Options里的Include Empty Locations是关掉的否则列表里全是空路径。然后切到Everything标签这是全量视图日常排查我更常用Logon、Scheduled Tasks、Services这三个标签分头看信息密度更合适。Autoruns 的一个实用功能是能直接生成快照文件。命令行版本autorunsc.exe更适合做基线autorunsc.exe -accepteula -a * -h -s -nobanner -o baseline.csv-a *表示扫描所有类型-h显示哈希-s验证签名-o输出到文件按扩展名决定格式。装完一堆软件之后再跑一次输出after.csv两个文件一对比谁往里塞了东西一目了然。这个做法我在给别人远程处理机器的时候经常用比来回截图靠谱得多。2.3 命令行清单把启动项变成可处理的文本图形工具看单机方便但当你要处理十台机器、或者想把结果贴进工单系统命令行更省事。第一组拿传统的启动命令列表Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User | Sort-Object Location, Name | Format-Table -AutoSizeWin32_StartupCommand这个类覆盖了注册表 Run 系列和启动文件夹返回的Location字段会告诉你它具体来自哪里这一点比自己翻注册表舒服。第二组筛选非微软的计划任务里带登录/启动触发器的Get-ScheduledTask | Where-Object { $_.TaskPath -notlike \Microsoft\* -and ($_.Triggers | ForEach-Object { $_.CimClass.CimClassName }) -match MSFT_TaskLogonTrigger|MSFT_TaskBootTrigger } | Select-Object TaskName, TaskPath, State | Format-Table -AutoSize这段的关键是先把\Microsoft\路径排除掉否则输出里几百条系统任务眼睛会瞎。第三组列出所有启动类型为自动的服务并单独标出延迟启动的Get-CimInstance Win32_Service | Where-Object { $_.StartMode -eq Auto } | Select-Object Name, DisplayName, State, DelayedAutoStart, PathName | Sort-Object DelayedAutoStart | Format-Table -AutoSize第四组直接读注册表把RunOnce和Wow6432Node一并带上$paths ( HKCU:\Software\Microsoft\Windows\CurrentVersion\Run, HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce, HKLM:\Software\Microsoft\Windows\CurrentVersion\Run, HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce, HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run ) foreach ($p in $paths) { if (Test-Path $p) { Write-Output $p (Get-ItemProperty $p).PSObject.Properties | Where-Object { $_.Name -notlike PS* } | ForEach-Object { {0} {1} -f $_.Name, $_.Value } } }把这四组的输出拼起来基本就是一台机器的完整自启清单了。2.4 建立基线比记住了什么可靠我踩过最大的一个坑就是凭记忆判断哪个启动项是新来的。装了几个月机器之后人的记忆完全不可靠你会把某个厂商预装的软件当成系统组件放过也会把系统组件当成垃圾误关。正确做法是留一份基线。新装完系统、驱动、常用软件之后跑一次autorunsc导出成 CSV或者至少把上面四组命令的输出重定向到一个 txt 里存档。之后任何一次感觉开机变慢了重跑一遍对比差异部分就是嫌疑人。这个方法把凭经验猜变成了看数据排查时间能从一两个小时压到十几分钟。提示导出的清单里如果包含完整路径和命令行参数可能含有用户名、内部服务器地址之类的信息往外发之前记得脱敏。3. 关掉不等于删掉禁用策略与取舍判断3.1 先分级再动手拿到清单之后别急着挨个禁用。我一般按下面这张表做一次分类分类完了再决定动作类别典型代表建议动作系统必需音频驱动配套服务、电源管理组件、指纹/触控板驱动、域环境登录脚本保留不要动安全相关系统自带的防护组件、企业统一部署的管理代理保留动了会掉线或报警驱动类显卡相关后台、芯片组配套程序保留服务可关掉附带的界面常驻程序按需使用各类同步盘、备份工具、聊天软件想省资源就禁用需要时手动开可疑/推销各类助手、推送服务、旧版本残留、未知签名项禁用并考虑卸载这张表最需要强调的是第二行。我见过不止一次有人为了开机快把公司的统一管理代理服务给禁了结果第二天资产平台上这台机器直接标红还收到通知要求说明情况。在受管设备上动手之前先确认哪些东西是 IT 统一推的。3.2 禁用、延迟、改手动三种处理方式怎么选很多人只知道禁用这一种动作其实有三种效果差别很大。禁用适合那些你确实不需要的软件副作用是每次想用都得手动开启且有些软件在被禁用后会在下次启动时重新写回注册表——这点后面单独说。延迟启动主要针对服务。把启动类型从自动改成自动延迟启动程序照样会起来只是往后排开机后看到桌面的那块时间会明显缩短。对数据库、Web 服务器、同步服务这类晚几十秒起来完全没问题的东西这是性价比最高的一个动作。改完之后用Get-CimInstance Win32_Service里的DelayedAutoStart字段确认一下是否生效。改成手动适合那种平时不用、偶尔才开一次的工具。手动模式下服务不会自启但依赖它的程序仍然能按需把它拉起来前提是程序本身有这个能力。比直接禁用的好处是用到的时候不需要管理员权限去改配置。三种方式的选择逻辑其实就一句话这个程序你是否需要它在你登录之前就开始工作。需要就保留或延迟不需要就禁用或改手动。3.3 顽固启动项为什么关了它还会回来这一类问题我处理过太多次把复活机制整理成一张对照表遇到同类情况直接对号入座现象可能原因对应处理位置任务管理器禁用后重启又启用软件启动时会重写 Run 键和 StartupApproved先禁用其更新服务/计划任务再禁用启动项结束进程后一分钟内自动回来服务的恢复选项设置了重新启动服务服务属性 → 恢复 → 全部改为不操作一天内被拉起好几次计划任务设置了重复间隔任务属性 → 触发器 → 取消重复任务间隔卸载后仍出现安装界面RunOnce里的更新器记录残留删除对应注册表值关闭开机自启无效重启又开有另一个常驻组件负责把它写回来用 Autoruns 找同一厂商的其他项一并处理处理顺序很重要先断掉复活源头再禁用启动项。如果反过来很可能白忙一场。判断复活源头的方法很简单用 ProcmonProcess Monitor过滤注册表写入路径只看对这些 Run 键的写操作谁在写一目了然。还有一种情况是软件把自己拆成了主程序 更新器 守护进程三个组件你只关了主程序守护进程还在它检测到主程序没跑就又拉起来。这时候要在 Autoruns 里搜同一个厂商名把所有相关项找齐一起处理。3.4 验证效果别只看任务管理器改完之后必须验证而且验证方式要选对。第一个指标是登录到桌面可交互的时间。任务管理器的启动标签页顶部会显示上次 BIOS 时间重启两次对比这个数字虽然它统计口径不完全等同于你的体感但趋势是准的。第二个指标在事件查看器里。路径是应用程序和服务日志 → Microsoft → Windows → Diagnostics-Performance → Operational事件 ID 100 记录了本次启动的详细耗时分解101 到 110 则是启动性能降级的组件列表会明确点名哪个启动项拖慢了启动。这个日志比任何第三方开机加速软件都准因为它就是系统自己统计的。第三个是实际资源占用。开机后静置五分钟看任务管理器里磁盘、内存的持续占用情况。有些启动项不影响启动耗时但会在后台持续读写磁盘这种比开机慢更折磨人。注意单次重启的数据没有参考价值缓存、更新、驱动初始化都会干扰。至少重启三次取一个感受期间不要再装东西。4. 反过来用把自己的程序做成合规的开机自启4.1 三种自启方式的成本对比前面讲的是关现在讲开。如果你自己写的脚本、工具或者服务需要在开机时启动方式有三种选择依据是需要多大的权限和需不需要界面。方式权限是否能显示界面启动时机适合场景启动文件夹快捷方式普通用户是登录后个人小工具、托盘程序计划任务可提权取决于配置启动时 / 登录后需要管理员权限、需要延迟系统服务系统级否系统启动过程中后台常驻、无人值守绝大多数个人工具用第一种就够了成本最低出问题也好排查。需要管理员权限的比如要监听低端口、要读写受保护目录就得走计划任务加使用最高权限运行。要的是开机就跑、不管有没有人登录的只能走服务。4.2 计划任务的完整配置流程与两个关键坑我用得最多的是计划任务因为它在权限和时机上的自由度最高。创建流程taskschd.msc→ 右侧创建任务不是创建基本任务后者给的选项太少。常规标签填名称选择不管用户是否登录都要运行或只在用户登录时运行勾选使用最高权限运行如果需要提权配置选你的 Windows 版本。触发器标签新建 → 开始任务选启动时或登录时如果需要错峰勾上延迟任务时间填 30 秒到 2 分钟不要勾重复任务间隔除非你真的需要定期拉起。操作标签新建 → 程序或脚本填可执行文件路径起始于填工作目录。这一步是最大的坑见下。条件标签取消勾选只有在计算机使用交流电源时才启动笔记本上经常因为这个不启动按需调整网络条件。设置标签勾上如果任务失败按以下频率重新启动是双刃剑本地调试时建议先不勾稳定之后再打开。第一个坑起始于不填或者填错。脚本里的相对路径全部会以系统目录为基准解析结果就是各种文件找不到。填上脚本所在目录问题基本消失。第二个坑勾了不管用户是否登录都要运行之后带界面的程序看不见窗口。原因是任务跑在了会话 0 里那里没有桌面。这种情况下程序其实是在运行的只是没有可见界面。如果你的程序必须有界面就选只在用户登录时运行。4.3 后台服务的自启从注册到依赖顺序需要无人登录也跑的场景老老实实做服务。三条路程序自带服务安装参数很多数据库、Web 服务器都提供装完默认就是自动启动用services.msc确认一下启动类型即可。用sc create创建sc create MyService binPath C:\tools\myservice.exe start auto DisplayName My Service sc description MyService 自研后台服务注意binPath后面那个空格不能省这是sc的老规矩省略了会报参数错误。用nssm这类包装工具把普通 exe 包成服务好处是能自动处理工作目录、日志重定向、崩溃自动重启。服务自启最容易出问题的不是注册本身而是依赖顺序。一个典型场景应用服务和应用依赖的数据库服务都设成自动开机后应用比数据库先起来连不上库直接退出。解决办法有两个一是服务的依赖关系标签页里把应用服务显式依赖于数据库服务服务控制管理器会保证顺序。二是把数据库设成自动延迟启动应用设成自动。这个思路听着反直觉但对那些启动很快、又不做重试的应用来说反而更稳因为应用先起来、重试几秒之后数据库也好了。如果应用自己有重试逻辑第二种方案最省事如果应用一上来连不上就直接退出那必须用第一种显式依赖。4.4 脚本开机自启闪退的排查顺序我自己写的脚本双击能跑设成开机自启就没反应——这个问题的出现频率大概能排前三。按下面顺序查基本五分钟内定位第一步确认脚本真的被执行了。在脚本第一行加一句写日志的命令把当前时间、工作目录、%USERNAME%写进文件。如果日志文件都没生成说明根本没跑起来问题在任务配置或权限上不在脚本内容里。第二步看工作目录。在日志里打印%CD%。如果是系统目录C:\Windows\System32说明起始于没填对脚本里所有相对路径都会失效。第三步看环境变量。开机自启时环境变量是干净的你自己在终端里跑的时候继承了一堆会话级变量比如手动加的 PATH 项。脚本里凡是依赖某个命令的尽量用绝对路径调用别指望 PATH。第四步看编码和换行。批处理脚本用带 BOM 的 UTF-8 保存在部分系统上第一行会解析失败表现就是闪一下就没。存成 ANSI 或者不带 BOM 的 UTF-8。第五步让窗口留住。调试阶段在脚本末尾加pause或者把整个脚本用cmd /k包一层能看到报错信息。等稳定了再去掉。还有一个细节如果脚本里调用了别的程序要注意被调用程序也会继承同样的干净环境。我遇到过脚本本身没问题但它调的一个工具依赖某个运行时库的路径开机场景下找不到手动跑却正常。4.5 部署之后的自检清单不管是给自己还是给别人部署我都会在交付前跑一遍这个清单重启三次确认每次都自启成功。换一个普通用户账号登录确认权限相关的部分没出问题。断开网络重启确认没有隐藏的网络依赖有些脚本会去拉远端配置。故意把依赖的服务停掉看应用是重试还是直接死据此决定要不要加守护逻辑。检查日志文件有没有正常滚动别让日志无限增长把磁盘写满。第五点尤其容易忽略。有个小工具我用了半年某天发现 C 盘少了十几 G查下来是它每次启动都往同一个日志文件追加从没清理过。现在凡是自启的脚本我都会带一句按日期分文件或者按大小轮转的逻辑。5. 几个真实场景的处理记录5.1 手机助手类软件的三件套这类软件是我见过最全面的装完之后注册表 Run 键有一项、全局启动文件夹有个快捷方式、计划任务里有个登录时触发 每 30 分钟重复的任务有的还会注册一个服务。你在任务管理器里禁用它下次启动时检测到自己不在启动项列表里就重新写一遍。处理这类东西我的做法是先卸载卸载完之后照下表逐一核对残留全清干净再重启。检查位置要看的点注册表 Run / RunOnce搜厂商名关键字两个启动文件夹有没有断掉的快捷方式任务计划程序库厂商文件夹是否整个残留服务列表有没有已停止但启动类型还是自动的服务安装目录主目录是否残留残留的话手动删实测下来只要按这个顺序走一遍重启后基本不会再出现。如果还有就上 Procmon 抓注册表写入一定能抓到是谁在写。5.2 误关系统组件的连锁反应这一类问题的特点是当时感觉好了过一会儿出怪事。我印象比较深的几次关掉了和音频相关的配套服务结果插耳机不自动切换排查了半天才想起来是之前优化时关的。关掉了某个芯片组配套服务笔记本的电源模式切换失效电池续航肉眼可见地掉。把系统更新相关的计划任务全禁了过了两周发现系统一直提示更新失败最后还是得恢复。经验是凡是名字里带厂商名、看不出具体功能、又带 Microsoft 或芯片厂商签名的默认放过。你要省的那几十兆内存和排查这些怪问题花的时间完全不成比例。真要关先记录原始配置——启动类型、恢复选项、任务触发器——出问题好还原。5.3 常驻程序的取舍看 IO 不看内存同步盘、笔记软件、聊天工具这类东西判断要不要留的标准我的排序是后台磁盘读写 CPU 占用 内存占用。原因是内存占用大但不动的东西对使用体验的影响其实很小而每隔几秒就要扫一遍全盘、或者持续往磁盘写小文件的东西会让机械硬盘的机器卡到没法用而且这种卡是全系统性的你很难归因到具体某个程序上。看的方法资源监视器resmon的磁盘标签按总字节数排序静置五分钟观察。如果某个常驻程序的累计读写量持续上涨且没有趋于平稳那它就是在做无意义的后台扫描可以考虑改成手动启动或者干脆换一个。5.4 无人值守和远程管理场景的特殊处理前面讲的都是登录之后的事但有一类机器你根本不会去登录它——放在机房的、放在车间里的、挂在墙上的展示机。这类机器的自启管理逻辑完全不同第一只考虑服务级自启。计划任务里选只在用户登录时运行的在这类机器上等于没有。必须用不管用户是否登录都要运行或者干脆注册服务。第二要处理异常退出。无人值守意味着没人看着程序崩了就是一整天的业务中断。所以服务的恢复标签页在这里反而是要配的——第一次失败重新启动间隔设短一点比如 1 分钟。第三日志必须能远程取。把日志写到固定的本地路径配合系统自带的文件共享或者运维平台的采集代理往外送。否则出问题你连现场都看不到。第四注意自动登录的副作用。有些场景需要配置自动登录才能让登录时触发的任务跑起来而这会带来别的问题比如锁屏策略失效。能用服务解决的尽量不要依赖自动登录。第五验证方式要变成冷启动 断电恢复。正常重启和断电后恢复是两回事后者涉及 BIOS 的来电自启设置。这个属于固件层面的配置不同主板位置不同通常在有电源管理或者AC Power Recovery字样的菜单里设成开机或者上次状态。配完一定要实际拔一次电源验证。顺带说一个常被忽略的点远程唤醒依赖的是网卡在关机状态下仍然供电并监听特定数据包这个功能在主板和网卡驱动两侧都要开启只开一边不管用。而且在快速启动Fast Startup开启的情况下关机并不是真正关机网卡的供电状态可能和预期不一样测试的时候要用重启来验证或者干脆关掉快速启动。最后分享一个小技巧是我踩过几次坑之后固定下来的习惯每次给机器做完启动项调整把最终的清单导出成一份带日期的文本和调整前的那份放在一起。文件名就用startup-20240612-before.txt和startup-20240612-after.txt这种格式。这半年里我至少有三次是靠翻这些历史文件才想起来哦这个项目是我自己当时关的省下的时间远超过导出文件花的那几秒。启动项管理这件事真正难的部分从来不是怎么关而是几个月之后还能不能记得自己关过什么。
返回列表