3

AD グループをプログラムで SPGroup に追加しようとしましたが、機能していません。

私はもう試した:

SPGroup.AddUsers("myADgroup");

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

ドメインありとなしの両方で試しました。

何か案は?

4

4 に答える 4

5

SPGroup.AddUsers("myAdGroup") メソッドはありません。その形式のAddUser()メソッドさえありません。

やってみました:

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

EnsureUserビットは、AD グループがSPWebのユーザーとして追加されていることを確認するため、権限を割り当てることができます。

于 2010-12-27T11:00:52.900 に答える
1

こんにちは、今のところ 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();
    }
}
于 2011-06-08T11:30:04.733 に答える
1

これは、Andy Burn's answer からのフォローアップです。

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")

その後、名前 (PowerShell では DisplayName のエイリアス) の値が異なることに気付きました。Active Directory では、'グループ名' と 'グループ名 (Windows 2000 以前)' に異なる値を使用していたことがわかりました。

グループ名はそれ自体で機能しましたが、Windows 2000 以前の名前を使用する必要があったドメイン プレフィックスを使用していました。

これにより、以下を機能させることができました。

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

そのため、問題が解決しない場合は、AD の 2 つのグループ名の一貫性を確認してください。

于 2011-10-20T04:20:45.387 に答える
0

また、ADグループでSPWeb.EnsureUserを呼び出す際に問題が発生しました。私の場合、問題のグループの表示名が基になるsAMAccountNameとは異なるため、混乱が生じました。表示名ではなくsAMAccountNameを使用してEnsureUserを呼び出すと、問題が分類されました。

于 2012-07-10T06:29:49.830 に答える