作为网络服务/本地系统运行的服务:未能将条目添加到ActiveDirectoryContainer(DirectoryO



我有两个Windows服务(一个作为网络服务运行,另一个作为本地系统运行)。运行这些服务的系统是域的一部分。这些服务使用active directory作为中心存储,其思想是能够从该存储中添加/删除/读取条目。

我们只是使用System.DirectoryServices.Protocols.LdapConnection.BeginSendRequest(DirectoryRequest请求。。。。http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.ldapconnection.beginsendrequest(v=vs.110).aspx),并将AddReuest作为输入传递以将条目添加到Active Directory。

但是,操作失败,System.DirectoryServices.Protocols。DirectoryOperationException,并显示消息the user hasinvalid access rights(网络服务和计算机/本地系统帐户都出现相同错误)。但我确实将计算机帐户添加到了Active Directory中的存储中,并授予了该存储的完全权限。我不确定我错过了什么?

是否即使计算机帐户已授予完全权限,也无法添加/删除active directory上的条目?(我以为本地系统/网络服务只是通过网络传递计算机凭据-我快速浏览了以下链接以供参考。';本地系统';帐户和';网络服务';帐户之间的区别?或http://technet.microsoft.com/en-us/library/bb680595.aspx)

顺便说一句,请注意,只要我使用域用户帐户之一运行服务,操作就会通过。搜索(读取操作)正在为所有帐户传递。

您可能将身份验证问题误认为是授权问题。诚然,当什么都不起作用时,很难将它们区分开来。

你在广告中设置的权限可能还可以,但你永远无法实现。在承载Active Directory的计算机的安全事件日志中,\server_a的网络登录可能被拒绝访问。在Active Directory服务器上,授予计算机帐户(server_A)"从网络访问此计算机"的权限。

它将解决身份验证部分,让进程获取一个访问令牌,该令牌将由Active Directory用于执行授权。

如果您在低容量实验室中,也可以尝试使用Security Events注册表项启用Active Directory诊断日志记录。

我将把它作为一个答案而不是一个注释,尽管我还不确定它是否会有所帮助。

当处理这样的权限问题时,我倾向于从集合的角度来思考。首先,我将查看为您的两个不同测试用例提供的一组成员资格,即机器帐户和服务帐户,它们类似于这里描述的powershell脚本:https://stackoverflow.com/a/20410668/44656.

您的服务帐户可能具有通过间接成员身份授予的权限,而您的计算机帐户没有。

如果这还不能说明问题,您可以尝试在ActiveDirectory服务器上启用审核,并查找失败的访问尝试。通常,失败的权限检查可以很好地突出某些内容被拒绝的原因。审核可以通过全局审核策略进行配置,并在您感兴趣的特定对象上设置SACL。

相关内容

  • 没有找到相关文章

最新更新