事件 ID 4105:终端服务许可证服务器无法更新 Active Directory 域 <DomainName 中 userName <> 的许可证属性>

本文提供了在运行远程桌面许可 (RD 许可) 的计算机上发生的事件 ID 4105 的解决方案。

适用于: Windows Server 2008 R2
原始 KB 编号: 2030310

症状

你可能会在运行 RD 许可的计算机上看到以下警告事件,以前是终端服务许可 (TS 许可) 。

日志名称:系统
来源:Microsoft-Windows-TerminalServices-Licensing
事件 ID: 4105
级别:警告
用户:不适用
计算机: <计算机名称>
说明:
终端服务许可证服务器无法更新Active Directory 域<域名>中用户<用户名>的许可证属性。 确保许可证服务器的计算机帐户是 Active Directory 域名<>中的终端服务器许可证服务器组的成员。
如果许可证服务器安装在域控制器上,则网络服务帐户还需要是终端服务器许可证服务器组的成员。
如果许可证服务器安装在域控制器上,在将相应的帐户添加到终端服务器许可证服务器组后,必须重启终端服务许可服务以跟踪或报告 TS Per User CAL 的使用情况。
Win32 错误代码:0x80070005

原因

由于以下原因之一,可能会记录事件 ID 4105:

  1. 许可证服务器不是用户所在的域中终端服务器许可证服务器组的成员。
  2. 许可证服务器安装在域控制器上,网络服务帐户不是终端服务器许可证服务器组的成员。
  3. 如果在将域升级到 Windows Server 2003 之前存在用户帐户,则 Active Directory 目录服务中用户对象 (DACL) 的任意访问控制列表中可能缺少终端服务器许可证服务器组。 或者,组位于 DACL 中,但组无权更新用户帐户的终端服务许可信息。

解决方案

方案 1:许可服务器未添加到用户所在的域的终端服务器许可证服务器组

有关此方案及其解决方法的详细信息,请参阅 事件 ID 4105 - 终端服务每个用户客户端访问许可证跟踪和报告

方案 2:终端服务器许可证服务器组存在,但无权更新 Active Directory 目录服务中的用户帐户属性

Windows Server 2003 许可证服务器将仅更新 teminalServer 属性。 较新的终端服务器许可证服务器将尝试更新其他属性(如果可用)。 为了适应这一点,Windows Server 2008 架构更新定义了一个属性集,用于向所需的所有属性授予权限。

重要

根据用户界面语言,帐户名称和属性集名称可能会有所不同。

方法 1:使用 dsacls.exe

使用 dsacls.exe 添加权限,以将读取/写入权限添加到终端服务器许可证服务器组的用户对象的 terminalServer 属性或终端服务器许可证服务器属性集。

  • Windows Server 2003 级别架构

    dsacls "CN=XXXX,OU=XXXX,OU=XXXX,OU=XXXX,DC=XXXX,DC=XXXX,DC=XXX" /G
    "BUILTIN\Terminal Server License Servers:WPRP;terminalServer"
    

    授予对容器的权限时,应使用以下命令:

    dsacls "OU=XXXX,DC=XXXX,DC=XXXX,DC=XXX" /I:S /G
    "BUILTIN\Terminal Server License Servers:WPRP;terminalServer;user"
    
  • Windows Server 2008 及更新的架构

    dsacls "CN=XXXX,OU=XXXX,OU=XXXX,OU=XXXX,DC=XXXX,DC=XXXX,DC=XXX" /G
    "BUILTIN\Terminal Server License Servers:WPRP;Terminal Server License Server"
    

    授予对容器的权限时,应使用以下命令:

    dsacls "OU=XXXX,DC=XXXX,DC=XXXX,DC=XXX" /I:S /G
    "BUILTIN\Terminal Server License Servers:WPRP;Terminal Server License Server;user"
    

方法 2:使用委托控件向导

使用委托控制向导添加权限,以便通过终端服务器许可证服务器组将读取/写入权限添加到用户对象的 terminalServer 属性或终端服务器许可证服务器属性。 为此,请按照下列步骤操作:

  1. 右键单击Active Directory 用户和计算机中的域,然后单击“委托控件”。
  2. 在“ 用户和组 ”对话框中,单击“ 添加”。 键入 “终端服务器许可证服务器”,然后单击“ 确定”。 在“ 用户和组 ”对话框中,单击“ 下一步”。
  3. 在“ 要委托的任务 ”对话框中,单击“ 创建要委派的自定义任务”,然后单击“ 下一步”。
  4. “Active Directory 对象类型 ”对话框中,单击“ 仅”文件夹中的以下对象。 在列表中,单击“ 用户对象 ” (列表中的最后一个条目) ,然后单击“ 下一步”。
  5. 对于运行 Windows Server 2008 或更高版本架构的林,在“权限”对话框中,确保仅选中“常规检查”框。 在“权限”列表中,单击以选中“读取和写入终端服务器许可证服务器检查”框,然后单击“下一步”。
  6. “完成控件委派向导 ”对话框中,单击“ 完成”。

数据收集

如果需要 Microsoft 支持方面的帮助,建议按照 使用 TSS 收集用户体验问题中的信息中所述的步骤收集信息。