从Sharepoint成员列表隐藏通讯组列表

时间:2009-11-04 11:28:04

标签: sharepoint

在Sharepoint的“我的网站”功能中,有一个“成员资格”Web部件,显示用户所属的分发列表。

这是我们不愿意再展示的几个小组,例如一些仅用于管理目的。

有没有办法控制显示哪些组;理想情况下,这将使用另一个AD组并设置仅显示该组的成员。

8 个答案:

答案 0 :(得分:2)

最佳解决方案是为Active Directory中的通讯组列表设置拒绝访问权限;请按照以下步骤操作:

1)打开Active Directory用户&计算机作为管理员(任何有权创建组和修改通讯组列表安全设置的用户)。

2)转到“查看”菜单,确保“高级功能”旁边有一个复选框。 在Active Directory中创建一个新的安全组(称之为HideFromSharePoint或其他)并将SharePoint Content Access帐户(在我的情况下为DOMAIN\sa_spcontent)添加到该组(必须与步骤4中使用的帐户匹配)

3)对于您不希望在SharePoint中显示的所有通讯组列表,请执行以下操作:

3a)打开通讯组列表,然后选择“安全”选项卡(必须选中“高级功能”才能显示此选项卡)。

3b)点击“添加”,然后输入您在步骤3中创建的安全组的名称(HideFromSharePoint);单击“检查名称”,然后单击“确定”。

3c)根据HideFromSharePoint的权限;选中Read旁边的Deny框(默认情况下设置为Allow),然后在提示符处再次单击Ok和Ok。

您刚刚拒绝了HideFromSharePoint组的任何成员对分发列表的读取权限。

4)转到SharePoint管理中心; SharedServices1;用户配置文件和属性;配置配置文件导入,在“指定帐户”下,输入您在步骤3中添加到HideFromSharePoint - 组的帐户的凭据。(出于某种原因,如果您将其保留为使用默认内容访问帐户,SharePoint将使用其他一些帐户访问Active Directory,从而允许访问通讯组列表。您可以尝试将其他SharePoint服务帐户添加到HideFromSharePoint组,但我认为明确指定帐户更安全,以便您知道哪个帐户正在访问AD并确保将Active Directory的“导入连接”设置为“使用默认帐户”(从而“继承”用于配置文件导入的帐户)。

5)转到SharePoint管理中心; SharedServices1;用户配置文件和属性,然后单击开始完全导入。 (您无法进行增量导入,因为组成员资格方面的用户没有任何变化;只是已更改的访问权限。)完成导入后(单击“刷新”直到“导入时间:”表示“已启动”)完全导入于2009年11月25日##:## AM - 于2009年11月25日结束导入##:## AM“)

分发名单现在不再显示在会员资格下。

有几点需要注意:

  • 您必须在不希望在SharePoint中显示的所有通讯组列表上明确单独设置拒绝访问权限。这是因为特殊的AD组“Authenticated Users”默认具有对目录中每个对象的读访问权,并且显式允许访问权限在组织单位级别设置拒绝访问权限(例如)。
  • 虽然您可以跳过设置HideFromSharePoint - 组并为SharePoint Content Access帐户设置拒绝访问权限目录的步骤,但Active Directory管理最佳做法是在配置安全权限时使用组。 (然后,您可以向该组添加其他成员,并允许那些被拒绝读取访问权限。)
  • 您可能需要等待一段时间(5分钟左右)才能将更改的拒绝访问权限设置为复制到所有域控制器。否则,导入可能会从拒绝尚未生效的域控制器读取。
  • 小心地将任何其他帐户添加到HideFromSharePoint - 组,因为这可能会破坏您的通讯组列表。例如;如果Exchange无法读取群组邮件将无法正常工作。只要您添加SharePoint内容访问帐户,就可以安全使用。
  • 此外(这与SharePoint或上述解决方案无关)请注意,域中的任何用户都可以启动ADUC或LDAP工具,并以这种方式查看通讯组列表的成员。如果您有任何“绝密”,则需要在Active Directory中进一步尝试设置访问控制。

答案 1 :(得分:1)

我很确定如果没有部署的自定义Web部件而不是官方部件,这将无法实现。 Exchange解决方案不起作用的原因是因为它的方式错误(从组到成员而不是成员到组)。

要部署它,您可以查看功能装订......您还需要更新现有网站。

这不是一个简单的答案。我不相信有一个简单的答案。

答案 2 :(得分:0)

我假设您的“成员资格”Web部件在内部使用SharePoint人员选择器功能。

如果是这种情况,那么以下stsadm命令应该可以帮助您按照自己的方式调整AD查找范围:

stsadm -o setsiteuseraccountdirectorypath -path< OU的名称> -url< URL名称>

答案 3 :(得分:0)

您可以尝试在“Exchange高级”选项卡上编辑“通讯组列表”,选中“从Exchange地址列表中隐藏组”复选框。

我没有对此进行测试,但理论上它会阻止分发列表显示组列表。

答案 4 :(得分:0)

轻松修复:在显示目标的页面上添加JavaScript,然后通过应用CSS样式隐藏特定项目。

答案 5 :(得分:0)

我没有确切的答案,但这是我如何思考这个问题。也许你已经回答了其中的一些问题,但它可能有助于再次通过它们。我会按以下顺序查看问题:

  • Active Directory中是否有一个选项可以从SharePoint隐藏组? (听起来不行)
  • SharePoint管理中是否有选项(通过stsadm或实际管理网站)从SharePoint中排除AD中的某些用户或组?
  • 有没有办法配置Web部件以从Web部件本身中排除某些用户或组?
  • Web部件的源代码是否可用,以便您可以编译Web部件以排除列表中的某些组?
  • 您是否可以使用javascript(如Josh所述)与webpart一起隐藏webpart中的分发列表? (这是一个有how to use JavaScript to Hide SharePoint's Quick-Launch bar示例的网站。也许这会有帮助。)

这些问题从最广泛的范围开始,最容易实现到最难实现的最窄范围。显然,你想要实现一个最容易实现的解决方案,但也许你会发现自己在列表中更远。

在最后两个示例中,解决方案可能看起来相当复杂,但您可以编写引用要排除的站点的XML文件的代码。这样,如果您的分发列表列表发生更改,您所要做的就是编辑XML文件而不是编辑源代码(javascript或webpart)。

如果没有一个简单的解决方案,你必须做出痛苦的选择:1)让问题保持不变;或2)实施一个为你的解决方案增加依赖性的黑客。

答案 6 :(得分:0)

我认为未启用安全性的通讯组不会显示在SharePoint中。您是否检查过AD以查看这些组是否已启用安全性?这可能只是出于权限目的,所以我可能错了。

在看到任何更改之前,您可能需要进行配置文件导入。

答案 7 :(得分:0)

您可以完全关闭分发列表,这就是我们在公司所做的事情。这可以通过转到SSP中的配置文件服务策略并禁用“通讯组列表”功能来完成。

现在,如果您想选择分发列表,那就不那么简单,但希望这会对某人有所帮助。