ActiveDirectory 更新用户获取 UnauthorizedAccessException

ActiveDirectory 更新用户获取 UnauthorizedAccessException

我有一个更新用户图片的脚本。由于我是域管理员,所以它在我的计算机上运行得很好。我想安排它在我的 SQL Server 上运行,但运行代理服务的帐户没有正确的权限(显然)。我想知道我必须授予此帐户什么权限才能使我的脚本正常工作。我总是可以使用蛮力方法并使其成为域管理员,但我宁愿不这样做。

谢谢,

更新:以下是执行此操作的代码片段:

System.DirectoryServices.DirectoryEntry e;  // Gotten from query earlier
e.Properties["thumbnailPhoto"].Add(bytes); // Bytes is an array of bytes that make up the picture          
e.Properties["jpegPhoto"].Add(bytes);
e.CommitChanges();   // Fails here

再次...以域管理员身份运行时它运行良好。

答案1

这特别涵盖了 thunbnailPhoto,但是可以以相同的方式授予 jpegPhoto(和其他属性)访问权限...

你必须委托控制分配给指定用户,授予他们对 Active Directory 属性“thumbnailPhoto”的读写访问权限。

  1. 加载 ”Active Directory 用户和计算机“管理控制台(dsa.msc)。
  2. 右键单击包含您希望指定用户能够上传图片的域用户的域或组织单位,然后选择“委托控制“。屏幕上将显示“控制委派向导”。单击“下一步”:

在此处输入图片描述

  1. 单击“添加”按钮添加您想要授予更改 Outlook 照片权限的用户或组,然后单击下一步。
  2. 在“要委派的任务”页面上,单击单选按钮“创建要委派的自定义任务”。单击下一步:

在此处输入图片描述

  1. 在“Active Directory 对象类型”页面上,选择单选按钮“仅文件夹中的以下对象”,并勾选复选框“用户对象”。单击下一步:

在此处输入图片描述

  1. 在“权限”页面上勾选“属性特定”复选框,然后在权限列表中勾选“读取缩略图照片”和“写入缩略图照片”复选框。单击下一步:

在此处输入图片描述

7.单击“完成”以完成“委派控制向导”。

指定的用户或组现在将能够读取和写入“thumbnailPhoto”属性。要使权限更改生效,用户需要注销然后登录。

来源

相关内容