因为服务的一个客户需要在一台Win11上安装金蝶K3 14.0 ERP系统,因为安装过程中现很多问题,客户端安装注册不上Dts的动态库,金蝶的DCOM远程组件访问也出现问题,查阅了大量的资料现将所有过程记录如下,希望可以帮助有需要的朋友。
以上图片从网络Copy而来,其实最近碰到很多原来在SQLServer 2000上开发的C/S架构的本地化程序,安装在Win10/Win11/Server2019时都可能出现这个“axscphst.dll、custtask.dll、dtsffile.dll、dtspkg.dll、dtspump.dll”动态库注册不上的问题,通过动态库跟踪发现其核心原因是因为操作系统自带的“sqlunirl.dll”版本与以上五个动态库不一致所导致,所以使用SQLServer 2000的SP4补丁中的所有动态库一并替换即可以解决动态库注册的问题。
在安装K3最终提示以上注册动态库失败,忽略即可,待K3安装完成后再执行下面的步骤。刚才去查看了一下刚安装的Win10 22H2版本中的sqlunirl.dll版本号就是2000.080.2039.00,所以看来使用的就是SQLServer 2000 SP4的相关文件。
下载SQLServer 2000 SP4 DTS文件,里面自带的批处理文件可能不能正常执行,而且批处理是在Win11 64位操作系统下写的,所出是复制到C:\Windows\SysWow64\文件夹下,同学们自行修改或者自己开个命令窗口单独注册,因为我自己采用批处理注册的时候也没有成功,因为时间原因没有细究。
以上过程即完成了K3的客户端安装。
一、下面介绍K3应用服务器的设置:
1、在服务器上新建立一个用户,专门用于COM+网络认证,此处演示的用户名:user 密码:User@123 右击【开始】,打开计算机管理界面;
2、右击【用户】,添加新用户,勾选【用户不能更改密码】和【密码永不过期】
3、并设置用户只隶属于Distributed COM Users,删除其它用户组。
4、在服务器上修改本地安全策略:打开控制面板\所有控制面板项\管理工具-本地安全策略,将【本地策略】->【安全选项】中的“网络访问:本地账户的共享和安全模型”修改为【经典-本地用户以自己的身份验证】
5、在本地安全策略中“账户:来宾账户状态”设置为【已启用】;账户:使用空密码的本地账户只允许进行控制台登录,设置为【已禁用】如下图所示。
6、更新组策略:打开cmd->gpupdate 回车,确保所做的修改生效,服务端设置完毕。
二、客户端相关操作设置
1、客户端电脑运行中输入:control keymgr.dll 回车,打开凭据管理界面。
2、打开凭据管理器后,切换到"windows凭据",点击"添加windows凭据"
3、输入服务器ID 192.168.10.60,用户名为刚才在服务器上建立的用户user,输入正确的密码。
4、凭据新建完成后,可以看到,如下图所示,客户端设置完毕
***需要注意:客户端操作员尽量不要与服务器远程同名。
三、总结
由于微软发布的最新累积补丁,对WINDOWS的安全性进行了调整,调整了NTLM非交互式认证过程,以致K3客户不能正常运行远程组件(COM+)服务,导致无法通过DCOM通讯,通过上面服务端及客户端的设置,增加COM+专用用户user,并在客户端添加凭据,客户端将以此用户进行网络认证来彻底解决了问题。