微软bug:msconfig处理器个数不一定是总的逻辑处理器个数

2021-12-23 11:26:24 浏览数 (1)

文档有点长,结论先行:msconfig有bug,msconfig里的处理器个数不一定是总的逻辑处理器个数,逻辑处理器的个数以msinfo32显示的为准!!!

我的电脑管理员身份执行msinfo32命令,显示只有一颗CPU,是6个内核12个逻辑处理器

msconfig命令 → 引导 → 高级选项 → 处理器个数是12

通过买不同配置的机器,总结出规律,msconfig处理器个数最大值是最后一颗CPU的逻辑处理器个数,即powershell执行(Get-WmiObject win32_processor).NumberOfLogicalProcessors显示的最后一行结果

比如

①116核 216GB

ins-irul4sv5

②96核 192GB

ins-krkx65l7

③64核 128GB

ins-bvrpiecl

④48核 128GB

ins-p3pnfquf

⑤80核 192GB

ins-mhbv2e01

⑥96核 384GB

ins-e2w9ilkb

本来msconfig显示的处理器个数应该是所有CPU逻辑处理器的总个数,但是由于微软的bug,仅仅显示了最后一颗CPU的逻辑处理器个数,

比如想通过msconfig把原本96个逻辑处理器

调整成下次开机95个,由于显示bug,在界面上只看到最后一颗CPU的逻辑处理器个数32,没法通过图形界面调成95,只能通过命令来调

bcdedit /set numproc 95

调整后重启机器进入系统后执行msconfig查看,发现已经有最大95了,通过(Get-WmiObject win32_processor).NumberOfLogicalProcessors也能看到结果发生了变化。

重启前msconfig显示的个数为32,设置为95重启后,发现从64 → 95了

再比如,原本116核的调整成下次开机100个

重启前显示的52,设置为100重启后,发现从64 → 100了

如果想恢复到调整之前的状态,执行bcdedit /deletevalue numproc (注意:如果没执行bcdedit /set numproc <number> 命令而直接执行bcdedit /deletevalue numproc会报"尝试删除指定的数据元素时出错" "找不到元素",或者执行第1遍bcdedit /deletevalue numproc已经成功了又继续重复执行也会报一样的错,所以bcdedit /deletevalue numproc 命令可以加输出重定向隐藏报错)

【powershell】

bcdedit /deletevalue numproc 2>$nul 1>$nul

【cmd】

bcdedit /deletevalue numproc 2>nul 1>nul

msconfig处理器个数的显示规律是我发现的,图文并茂地反馈给微软时,跟我沟通的工程师并不清楚原因给我乱猜一通,我认为是bug,后来他查到微软内部资料,给我回了邮件,确实是bug。他跟我电话沟通,说这个bug微软不打算修,因为通过命令可以解决。另外,逻辑处理器的个数以msinfo32显示的为准!!!

0 人点赞