文档有点长,结论先行: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显示的为准!!!