Windows有个坑是系统没激活导致的。高配机器内存只有2G可用,比如16G内存,resmon命令显示为硬件保留了14336M(整14G)内存,可用只有2G,也可以任务管理器 → 性能页签里的内存 → 右下侧看到为硬件保留的内存多少G(这里是四舍五入的,resmon命令显示的那个更为精确)
在微软windows internals这本书里有记录,跟激活或者说license相关的限制,在一些没激活的场景里,系统内存被限制只能用到2G,其余的会以“为硬件保留的内存”的形式被限制使用。
Windows support for physical memory is dictated by hardware limitations, licensing, operating system data structures, and driver compatiblity.
Windows对物理内存的支持取决于硬件限制、许可、操作系统数据结构和驱动程序兼容性。
执行4句命令可以激活,激活后重启机器即可恢复内存识别,不再浪费内存到"为硬件保留"
第2句里的key根据版本不同要换一下
slmgr /upk
slmgr /ipk WMDGN-G9PQG-XVVXX-R3X43-63DFG
slmgr /skms kms.tencentyun.com
slmgr /ato
一句一句执行,不要一溜复制4句粘贴,会报错,因为下一句依赖上一句的结果,如果一溜同时粘贴就会乱套报错
Windows Server 2008R2企业版
ProductKey: 489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2012R2数据中心版
ProductKey: W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
Windows Server 2016
ProductKey: CB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2019
ProductKey: WMDGN-G9PQG-XVVXX-R3X43-63DFG
Windows Server 2022
ProductKey: WX4NM-KYWYW-QJJR4-XV3QB-6VM33
如果是写在.bat里执行,这样写,注意key因系统而不同,要针对性,前面已经强调过了
代码语言:javascript代码运行次数:0运行复制@echo off
cmd /c "cscript /nologo %windir%/system32/slmgr.vbs -upk"
cmd /c "cscript /nologo %windir%/system32/slmgr.vbs -ipk WMDGN-G9PQG-XVVXX-R3X43-63DFG"
cmd /c "cscript /nologo %windir%/system32/slmgr.vbs -skms kms.tencentyun.com:1688"
cmd /c "cscript /nologo %windir%/system32/slmgr.vbs -ato"
cmd /c "cscript /nologo %windir%/system32/slmgr.vbs -ato"
cmd /c "cscript /nologo %windir%/system32/slmgr.vbs -ato"
cmd /c "cscript /nologo %windir%/system32/slmgr.vbs -ato"
@rem 后面加3句是为了健壮性
这个问题最本质的原因可能只有微软自己清楚,微软说下面这个路径的注册表在一些特殊场景比如内存不足的场景中损坏了
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ProductOptions
这个注册表里有很多信息,有个软件可以读这个注册表
http://windowsgg-1251783334.cos.na-siliconvalley.myqcloud.com/ProductPolicyEditor.zip
powershell执行(Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\ProductOptions\).ProductPolicy.count
结果在千级别的,最好重新激活下系统
结果在几万级别的,应该是正常的
我遇到的一个case
(Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\ProductOptions\).ProductPolicy.count
未激活值:1960
方法一:
slmgr.vbs /ipk ProductKey #执行完,值立马由1960变成56184
重启系统内存恢复正常
最后再执行slmgr.vbs /ato激活下
方法二:
slmgr.vbs /rilc #值未变化还是1960
重启系统内存恢复正常
slmgr.vbs /ato #只有激活后值才会变成56184
方法三:
卸载任意msi程序 #值可能变,也可能不变
重启系统内存还是2G #值是1960的变成了56184,不管值变不变,重启后内存还是2G
只有执行完slmgr.vbs /ato,并再次重启系统,内存才会恢复正常
要确认是不是内存不足导致,交换分区监控还是比较容易判断内存不足问题的
一般来说,如果交换分区比物理内存大,系统日志里大概率是能过滤到2004 内存不足日志的
参考:https://cloud.tencent.com/developer/article/1927677 查看有没有事件ID2004的system日志,过滤日志可以用系统自带的事件查看器eventvwr,也可以用第三方工具fulleventlogview,参考https://cloud.tencent.com/developer/article/1866711
开关机相关的事件ID:12,13,6005,6006,6008,41,1074
内存不足的事件ID:2004
激活相关的事件ID:8197,8198,12288,12289
这样过滤(一般来说用事件ID过滤效率高,过滤得快,如果用description里的字符串过滤,效率会差一些,过滤得慢)
或者
一般来说,长期内存不足后,某次激活失败了,然后重启机器出现了2G内存的限制。解决办法前面已经说了:
如果配置计划任务的话,内存不足有2004事件ID,可以配置计划任务检测事件ID,当触发时执行含有那4句命令的.bat
为了提升健壮性,最后一句命令来3遍
我已经把计划任务导出为.xml文件了
你只需要准备好c:\jihuo.bat后,导入这个.xml文件即可
如何操作我录了视频
jihuo.xml.zip
- 中国石化备付金是什么意思追梦Juvenile 2024-11-19 09:26:45 这样你的卡上就有钱了,就可以继续加油啦。所以简单来说,备付金就是为了方便你随时能够加油而设立的一种账户...
- dnf传说矛哪个好一、前言 在dnf(地下城与勇士)这款游戏中,武器是玩家角色能力的重要因素之一。传说矛作为游戏中的一种武器,对于物理职业和魔法职业都...
- 深圳自驾到厦门多少费用 深圳去厦门路线攻略深圳开车到厦门的一共要行驶573公里,一共得开6小时58分钟,油耗费用估计286元左右,过路费为285元左右 深圳自驾到厦门的距离 时间 费用 全程...
- DNF起源版本剑宗极致加点&装备附魔攻略,打造超强剑宗必看秘籍在地下城与勇士:起源中,剑宗作为一个物理系高爆发输出的职业,以其霸体多、位移多、伤害高的特点深受玩家喜爱。本文将为大家详细解析...
- 思美人结局是什么思美人结局是什么_思美人人物结局介绍 近日,马可主演的《思美人》即将在湖南卫视播出,大家对于剧中的结局是什么很是疑惑。为此学习啦...
- 收益分享计划出自 MBA智库百科(https://wiki.mbalib.com/) (重定向自Gain sharing plan) 收益分享计划(gain sharing plan) 目录 1 什么是收益分享计划? 2 收益分享计划的种类 3...
- 火车为什么要鸣笛?晚上火车按喇叭扰民怎么举报住在铁路附近的人,经常都可以听到火车鸣笛的声音,那么火车为什么要鸣笛? 1、列车在运行管理上的一种沟通 通过鸣笛的方式,就是为了告...
- 解决育碧Uplay下载慢/下载速度为0/下载速度不稳定教程解决育碧Uplay下载慢/下载速度为0/下载速度不稳定教程 育碧Uplay,作为PC游戏领域中的佼佼者,凭借庞大的游戏库与卓越的运行稳定性,深受广大...
- Tensorflow 笔记: Tensorflow 为什么难用Tensorflow 笔记: Tensorflow 为什么难用 常常会听到人说 Tensorflow 很难用,大家就开始用 Pytorch 什么的,我不得不承认Tensorflow 很难用,但也有人很喜...
- 京东价保退款后要不要还?退到哪里?价保退款的真相与去向全解析!京东价保退款后要不要还?退到哪里?价保退款的真相与去向全解析! 在电商促销频繁的今天,商品降价早已成为常态。京东作为国内头部电商...