授予帐户对 Active Directory 用户对象上的特定属性的写访问权限

Pet*_*ter 5 security active-directory access-control-list

我正在尝试允许帐户更新所有用户对象上的非常特定的属性。我正在“用户”对象上设置此安全性。当我在安全选项卡上添加帐户时,转到高级,编辑帐户权限,然后开始浏览属性列表,我只能找到一些属性,例如名字,但大多数属性我想让它们写到丢失。如何授予帐户对这些属性的写访问权限?

我需要授予以下权限的属性:

  • 名字 (givenName)
  • 姓氏 (sn)
  • 首字母(首字母)
  • 部门(部门)
  • 公司(公司)
  • 标题(标题)
  • 经理(经理)
  • 位置信息(physicalDeliveryOfficeName、streetAddress、postOfficeBox)
  • 工作电话(电话号码)
  • 寻呼机(寻呼机)
  • IP电话(ipPhone)
  • IP电话其他(otherIpPhone)
  • 缩略图标志(thumbnailLogo)
  • jpegPhoto (jpegPhoto)
  • 说明(显示名称)

谢谢

Mad*_*Boy 5

虽然@sysdmin1138 的答案是正确的,但值得一提的是,更改范围并不是视图中缺少内容的唯一原因。默认情况下,有些东西是不可见的。

某些对象(例如physicalDeliveryOfficeName)在视图中是隐藏的,因此您无法轻松委派它们。许多其他属性也被隐藏,但 physicalDeliveryOfficeName 非常具体,可以很好地说明委托的工作方式。

您通过Active Directory 用户和计算机查看的用户对象的每个属性权限选项卡可能不会显示用户对象的每个属性。这是因为访问控制的用户界面会过滤掉对象和属性类型,以使列表更易于管理。虽然对象的属性在架构中定义,但显示的筛选属性列表存储在Dssec.dat文件中,该文件位于所有域控制器上的%systemroot%\System32文件夹中。您可以编辑文件中对象的条目以通过用户界面显示过滤的属性。

Dssec.dat文件中的过滤属性如下所示:

[User]
propertyname=7
Run Code Online (Sandbox Code Playgroud)

要显示对象属性的读写权限,您可以编辑过滤器值以显示一种或两种权限。要同时显示属性的读取和写入权限,请将值更改为零 (0):

[User]
propertyname=0
Run Code Online (Sandbox Code Playgroud)

要仅显示属性的写入权限,请将值更改为 1:

[User] 
propertyname=1
Run Code Online (Sandbox Code Playgroud)

要仅显示属性的读取权限,请将值更改为 2:

[User]
propertyname=2
Run Code Online (Sandbox Code Playgroud)

编辑 Dssec.dat 文件后,您必须退出并重新启动 Active Directory 用户和计算机以查看不再筛选的属性。该文件也是特定于机器的,因此在一台机器上更改它不会更新所有其他机器。您是否希望它在任何地方都可见,这取决于您。

在此处输入图片说明

可以在我的博客中阅读有关physicalDeliveryOfficeName以及如何使用屏幕截图更改它的完整故事。

PS1。由于 physicalDeliveryOfficeName 是特殊情况,修改此设置后查找Read/Write Office Location。不幸的是,名称physicalDeliveryOfficeName从未出现过。

PS2。除非通过修改 dssec.dat 发现这些设置,否则您将无法看到它们。由于此文件是每台计算机的,因此它完全有可能在某些计算机上可见而在其他计算机上不可见,具体取决于是否有人较早进行了更改。这可以解释为什么您可以在之前而不是之后看到它。

PS3。很抱歉复活,但只是花了几个小时试图找到原因,所以我想我会分享它以供将来参考。