2024年3月10日发(作者:)
========
Kerberos认证时客户端等待域控的请求超时,Kerberos使用UDP和域控通讯
解决方案
========
在客户端上强制Kerberos使用TCP协议和域控通讯
1. 运行regedit打开注册表编辑器
2. 找到以下注册表:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsaKerberosPar
ameters
注意:如果没有parameters这个项,请手动创建
3. 新建一个DWORD的值
名称:MaxPacketSize
类型:REG_DWORD
数值:1
4. 重新启动机器并用有问题的用户再次登录
排错步骤
========
这次排错主要使用到的工具有:userenv日志,内存转储文件
1. 打开userenv调试日志,检查没有发现异常
2. 用以下方法配置内存转储,在问题发生时按住右边Ctrl,并同时按Scroll Lock键两
次产生蓝屏,此时会生成内存转储
创建页面文件
1) 单击开始,右键单击我的电脑,然后单击属性。
2) 单击高级选项卡。
3) 在性能区域下,单击设置。
4) 单击高级选项卡,然后单击虚拟内存的更改。
5) 选择安装操作系统的系统分区。
6) 设置初始大小的值和最大大小的值,使其比物理内存大1MB以上。
7) 单击设置,然后单击确定三次。
创建完全内存转储文件
1) 单击开始,右键单击我的电脑,然后单击属性。
2) 单击高级选项卡。
3) 单击启动和故障恢复 区域下的设置,然后在写入调试信息下选择完全存储器转储。
4) 单击确定两次。
用键盘生成内存转储文件
1) 启动注册表编辑器
2) 找到以下位置
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesi8042prtParam
eters
3) 添加以下注册表项
名称 : CrashOnCtrlScroll
数据类型 : REG_DWORD
值 : 1
4) 退出注册表编辑器
3. 检查内存转储发现以下在调用getusername函数时有一个死锁,
并且在等待域控对Kerberos的相应
4. 修改以下注册表强制kerberos使用TCP连接,问题解决
HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsaKerberosPar
ameters
名称:MaxPacketSize
类型:REG_DWORD
值:1
参考文档
========
如何在Windows中强制kerberos使用TCP
/kb/244474/zh-cn
注意:此文章为机器翻译,如果有不准确的地方,请参考以下英文文档
/?scid=kb;EN-US;244474
关于修复工具-请将此邮件的附件后缀由.txt改为.reg,并复制到出现问题的终端系统
硬盘当中即可双击运行。
此工具适用于所有出现此类问题的终端系统。
发布评论