首页 > 系统相关 >Windows 记录开机后应用启动慢的问题

Windows 记录开机后应用启动慢的问题

时间:2024-12-25 21:29:43浏览次数:5  
标签:控制 关闭 记录 Windows 智能 签名 应用 开机

【声明】CSDN只做转发不做时时更新,最新博客请关注博客园 Windows 记录开机后应用启动慢的问题 - 唐宋元明清2188 - 博客园

最近大屏产品经常报一些开机启动的问题,工厂反馈厂测软件有些模块测试不通过,家里开发测试均发现Launcher等软件首次启动需要加载10多秒。

经过小伙伴们初步排查,发现是刷母盘后首次开机问题概率比较大。

1. 使用新母盘,首次开机是必现应用启动慢问题。

2. 将一个exe换个路径,重启电脑,也是会有这个打开exe启动慢问题。

Windows版本:WIN11 IOT 企业版 23H2 22631.2428

网上也有其它同学在报类似问题,未能说明根本原因但确定是和智能控制有关:解决win11系统开机后第一次打开一个软件很慢,关闭进程重新打开速度就正常的问题 - 远景论坛 - 前沿科技与智慧生态的极客社区

我总结下: 从Win11 22H2版本开始,如果是全新安装的系统,那么Windows会默认打开“智能应用控制”选项的“评估”功能。

根据官网文档 Windows 应用程序控制 | Microsoft Learn ,智能应用控制的工作原理是:当用户尝试在 Windows 上运行应用时,智能应用控制将检查,以查看微软的智能云安全服务是否可以对其安全性做出预测。 如果服务认为应用是安全的,则智能应用控制将允许它运行。 如果认为该应用是恶意应用或可能不需要的应用,则智能应用控制将阻止它。如果安全服务无法对应用进行预测,则智能应用控制会检查该应用是否具有有效的签名。 如果应用具有有效的签名,智能应用控件将允许它运行。 如果应用未签名或签名无效,智能应用控制会将其视为不受信任,并阻止它进行保护。

虽然微软声明智能应用控制在评估模式下不会阻止任何内容,但是该模式下确实会严重拖慢某些程序的首次打开速度

小伙伴验证了下,手动关闭智能应用控制,从评估改为关闭,就能解决首次启动慢的问题。

手动可以关闭,那代码是否也可以操作关闭呢?官网有说明,如需要关闭,HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy下VerifiedAndReputablePolicyState将属性改为0,然后使用 CiTool.exe -r 使更改生效。

默认值是2,“评估”模式:

另外,我尝试在上面同一大屏设备上安装24H2家庭中文版,以及笔记本设备上安装WIN11 IOT 企业版 23H2,智能应用控制”选项是“评估”,但都未能复现开机应用启动慢问题

根据官网智能控制的介绍 什么是智能应用控制? - Microsoft 支持,除了手动关闭外,有一些情况会自动关闭智能应用控制:

  • 在 评估模式下 ,我们确定你不适合使用智能应用控制。

  • 你或登录到计算机的另一个用户手动关闭了它。

  • 你的设备在 S 模式下运行 Windows。 你需要关闭 S 模式,然后重置电脑才能进入评估模式。

  • Windows 中的 可选诊断数据 已关闭。 如果要打开智能应用控制,则需要重置此电脑或重新安装 Windows,并在设置过程中选择“ 发送可选诊断数据 ”。

当时我评估可能除了这些路径外还有其它参数影响智能控制“评估”选项。虽然显示的是“评估”,但实际上并未生效

经过我和团队小伙伴大量的对比验证,总结出了复现条件:

1. 智能控制,默认选择“评估”模式

2. 应用程序DLL未签名 

3. 连接WIFI,能上网的或者不能上网的都行

4. 选择一个从未启动过的应用路径exe - 你可以在桌面上新建一个复杂名称文件夹,把exe放进去

在这4个条件下,能复现windows开机应用冷启动特别慢的问题,概率高达80%以上。不是必现的,我们经过几十次验证发现有3次启动正常。

为何联网会有影响呢?我根据智能控制的原理的第一个步骤”查看微软的智能云安全服务来做预测“有关,我推测应该是要请求微软服务器。至于无法联网也有此问题,可能是请求超时?

签名也是与智能控制的第二个步骤“如果应用具有有效的签名,智能应用控件将允许它运行”有关,有签名的情况下,正常应用不会有影响。

程序签名,一般外部Nuget源引用的Nuget包都有签名,比如Newtonsoft.Json使用了基金会的签名:

而上面的问题中,我司的自研应用某些情况下未签名,才暴露了此启动慢问题:

我额外使用了Win11家庭版24H2 以及 Win11企业版23H2验证,按上面多条件路径,均能复现。

所以如果你遇到了这个首次开机应用启动慢的问题,可以确认下你的程序exe以及DLL是否都签名了。另外也可以将智能控制关闭,这个关闭不会影响Windows系统的稳定性。

作者:唐宋元明清2188

出处:唐宋元明清2188 - 博客园

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。

标签:控制,关闭,记录,Windows,智能,签名,应用,开机
From: https://blog.csdn.net/baidu_17703183/article/details/144728546

相关文章

  • windows nvm 切换node版本后,npm找不到
    前言在windows使用nvm,管理node版本时,nvminstall14.21.3后,发现在指定node版本的node_modules文件夹中没有对应的npm包,这时有两种方法解决,第一种配置自动下载npm,第二种手动下载npm更改配置文件,自动下载npm命令行运行:nvmroot显示出nvm的安装目录打开nvm文......
  • go windows 下交叉编译godror
    SETCGO_ENABLED=1SETGOOS=linuxSETGOARCH=amd64gobuildwindows 下交叉编译提示gcc_linux_amd64.c:Infunction'_cgo_sys_thread_start':gcc_linux_amd64.c:57:2:error:unknowntypename'sigset_t';didyoumean'_sigset_t'?......
  • upload-labs关卡记录3
    同理,我们先上传一个一句话木马进行尝试,发现页面会刷新,于是看是白名单还是黑名单看到提示:不允许上传.asp,.aspx,.php,.jsp后缀文件!说明这是黑名单的类型。这里我们发现在限制里面,并没有说不能上传.htaccess后缀的文件,(.htaccess文件(或者“分布式配置文件”),全称是Hypertext......
  • BZOJ P4883 [Lydsy2017年5月月赛]棋盘上的守卫 做题记录
    前置芝士:kruskal求最小生成树,并查集原题链接:hydro思路我们将它建模成图论问题,相当于从\(i\)到\(j\)连一条长度为\(a_{i,j}\)的边,然后使得每个点都有一个入度,那么就是在求最小基环树森林。至于基环树森林怎么求呢?我们使用像kruskal的思想,按照边的长度的大小对边进行排......
  • windows 下面使用 celery 管理定时任务
    Python实现定时任务有以下几种思路使用子进程(现成)+time.sleep间隔执行使用现有的库管理定时任务如,celery,tornado等使用系统的机制执行linux下面crontab,windows下面taskschd.msc本次调查celery这个常用的异步任务管理框架,它有一下好处支持分布式支持任务确认,即......
  • Luogu EI 的第六分块 // KTT 学习记录
    P5693EI的第六分块题目描述给定一个整数序列,支持区间加正整数以及查询区间最大子段和。思路使用线段树记录四个信息来维护答案:\(sum_i\):区间和;\(lmax_i\):最大前缀和;\(rmax_i\):最大后缀和;\(mx_i\):最大子段和。信息合并时分类讨论:\(lmax=\max(lmax_{ls},sum_{ls}+l......
  • 仓颉编程语言首次使用体验——windows下环境配置及入门
    仓颉编程语言是华为研发的一种静态强类型、编译型语言。注意这里的静态,强类型,编译型。同时符合这三个特性的常见语言有:C++RustGoSwiftJava(有区别,java编译为字节码)如果你熟悉上面这些语言,就可以立马了解对仓颉语言有一些感性的认识,这意味仓颉并不是像javascript,python这种语......
  • Windows交叉编译MNN-3.0.0安卓版本库
    一、写在前面以下的步骤、流程都是基于MNN的文档,再结合自己的实践得出的,仅作为参考。博主的环境是windows10专业版MNN文档MNN的Github仓库地址二、下载MNN-3.0.0主库在GitHub仓库进行项目克隆,截至2024.12.25,最新版本就是为3.0.0:gitclonehttps://github.com/alibaba/MNN......
  • shell jq使用记录
    linuxjq处理字典内的数组字典数组catdata.json{"fruits":["apple","banana","cherry"]}#获取字典keysjq'keys'data.json["fruits"]#获取获取字典中数组keysjq'.fruits|keys'data.json......
  • PySide6-FluentUI-QML 使用记录 python + pyside6 + qml
    PySide6-FluentUI-QML是一个ui库,官网地址为https://github.com/zhuzichu520/FluentUI作用:美化qml文件,快速构建项目简单使用1.pipinstallpyside6安装pyside62.pipinstallPySide6-FluentUI-QML安装PySide6-FluentUI-QML3.加载fluentui##main.pyimportsysimpor......