簡體   English   中英

如何以編程方式將AD組添加到SharePoint 2010 SPGroup?

[英]How to add AD group to SharePoint 2010 SPGroup programmatically?

一直試圖以編程方式將AD組添加到SPGroup,但它無法正常工作。

我試過了:

SPGroup.AddUsers("myADgroup");

SPGroupCollection.Add(groupName, currentUser, "myADgroup", groupDescription);

我已嘗試使用域和沒有。

有任何想法嗎?

嗯,沒有SPGroup.AddUsers(“myAdGroup”)方法。 甚至沒有具有該格式的AddUser()方法。

你有沒有嘗試過:

SPGroup g = web.AssociatedMemberGroup;
SPUser u = web.EnsureUser("DOMAIN\\myADgroup");
g.AddUser(u);

EnsureUser位確保將AD組添加為SPWeb的用戶,以便您可以分配權限。

嗨,現在沒有方法可以添加AD組。

您需要先創建組,然后再將用戶添加到該組。

using (SPSite spSite = new SPSite("http://localhost"))
{
    using (SPWeb spWeb = spSite.OpenWeb())
    {

        SPGroupCollection spGrps = spWeb.SiteGroups;
        SPUser uGrpOwner = spWeb.CurrentUser;
        SPUser uGrpDefMember = spWeb.CurrentUser;
        string sGrpName = "GrupeName";
        spGrps.Add(sGrpName, uGrpOwner, uGrpDefMember, "Decription");

        SPGroup spGrp = spGrps[sGrpName];

        List<SPUser> spUsersFromAD = YouFunctionGetUserFromAD(); 

        foreach(SPUser spUser  in  spUsersFromAD){
            spGrp.AddUser(spUser);
        }
        spWeb.Update();
    }
}

這是Andy Burn的回答:

從PowerShell我最初嘗試了以下內容:

$web = Get-SPWeb http://localhost
$web.EnsureUser("domain\test group")

這沒用,這令人費解。

一些更多的實驗,我發現以下工作(Power Users是內置組):

$web.EnsureUser("builtin\power users")
$web.EnsureUser("power users")
$web.EnsureUser("test group")

然后我注意到我有一個不同的Name值(在PowerShell中別名為DisplayName) - 事實證明我在Active Directory中使用了“組名”和“組名(Windows 2000之前版)”中的不同值。

組名自己工作,但使用域前綴我需要使用Windows 2000以前的名稱。

有了這個,我能夠得到以下工作:

$web.EnsureUser("domain\pre2000 test group")

因此,如果您仍然遇到問題,請檢查AD中兩個組名之間的一致性。

我在使用AD組調用SPWeb.EnsureUser時也遇到了問題。 在我的情況下,有一些混亂,因為有問題的組的顯示名稱與其底層的sAMAccountName不同。 使用sAMAccountName而不是顯示名稱調用EnsureUser為我排序問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM