2009-11-04 30 views
1

在Sharepoint的“我的网站”功能中,有一个“会员”Web部件,显示用户所属的分发列表。从Sharepoint成员名单中隐藏分发列表

这是挑选了几组我们宁可不显示的组,有些仅仅是为了管理目的而设置的。

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

+0

这不属于http://serverfault.com/? – Lukman 2009-11-20 17:02:36

+0

否。寻找编程相关的解决方案,因为无法在配置中更改它。 – wefwfwefwe 2009-11-21 15:16:48

+0

* [插入必要的Sharepoint笑话] * – 2009-11-25 04:01:45

回答

0

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

如果是这样的话,那么下面的STSADM命令有助于你的范围查找AD你想要的方式:

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

+0

不,这是为人民选择器的查找工作正常。我们为了内部目的设置了几个隐藏的邮件群组,例如[email protected],我们希望该组从成员列表中隐藏。 – wefwfwefwe 2009-11-24 09:15:19

0

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

我没有测试过这个,但理论上它会阻止分布列表出现在组列表中。

+0

它不起作用。 – wefwfwefwe 2009-11-24 12:28:40

0

简单修正:将JavaScript添加到显示目标的页面,然后通过应用CSS样式隐藏特定项目。

+0

不是特别容易,作为长期解决方案不可行 – wefwfwefwe 2009-11-24 15:44:13

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)实施黑客攻击,为您的解决方案增添依赖性。

1

我相当确信,如果没有部署自定义Web部件而不是官方部件,这是不可能的。 Exchange解决方案不起作用的原因是因为它的方式不正确(从组到成员而不是成员到组)。

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

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

0

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

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

+0

会员资格的Web部分将显示安全启用和普通的通讯组列表,因此这将不起作用。 – 2009-11-25 11:37:48

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;选中“读取”旁边的“拒绝”框(默认设置为“允许”),然后在提示处再次单击“确定”并确定。

您刚刚拒绝HideFromSharePoint组的任何成员读取通讯组列表。

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

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

分配列表现在不应再显示在会员资格下。

几件事情需要注意:

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

像魅力一样工作 - 在ou上设置拒绝权限,所以我不必为所有100个以上的组执行此操作。非常感谢! – wefwfwefwe 2009-11-27 15:48:25

0

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

现在,如果您想挑选并选择分发清单,并不那么简单,但希望这可以帮助某人。