7

SharePoint でマルチ テナント プロビジョニングを行っていますが、SharePoint オブジェクト モデルを使用してサイト サブスクリプションのユーザー アカウント ディレクトリ パスを設定できるかどうかわかりません。これは、次のコマンドレットを使用して powershell から実行できることを知っています。

    $sub = New-SPSiteSubscription 
    $sub | Set-SPSiteSubscriptionConfig -UserAccountDirectoryPath "OU=AlpineBikeStore,OU=Hosting,DC=contoso,DC=com" -FeaturePack "50976ac2-83bb-4110-946d-95b4b6e90d42" -Confirm:$false 

ここまでで、既定のサイトと機能パックを使用してサイト サブスクリプションを作成する次のコードを取得しました。ただし、Active Directory でユーザー OU へのパスを設定する方法がわかりません。

    //Create a default admin site for this tenant
    var site = new SPSite("https://contoso.com/", userToken);

    //Create the subscription and assign the default admin site to it.
    var sub = SPSiteSubscription.Create();
    sub.Add(site);

    //Get the feature pack and assign it to the subscription
    var featurePacks = SPSiteSubscriptionSettingsManager.Local.GetAllFeaturePacks();
    var pack = featurePacks.SingleOrDefault(x => x.Id == Guid.Parse("50976ac2-83bb-4110-946d-95b4b6e90d42"));
    SPSiteSubscriptionSettingsManager.Local.AssignFeaturePackToSiteSubscription(pack, sub);

助言がありますか?

4

1 に答える 1

1

Rikard が提案したように、私はあなたのためにリフレクションを使用しました。

Set-SPSiteSubscriptionConfig次のことを行います。

    if (this.m_UserAccountDirectoryPathSpecified)
    {
        SPSiteSubscriptionPropertyCollection adminProperties = this.m_SettingsManager.GetAdminProperties(this.m_ResolvedIdentity);
        if (!string.IsNullOrEmpty(this.UserAccountDirectoryPath))
        {
            adminProperties.SetValue("UserAccountDirectoryPath", this.UserAccountDirectoryPath);
        }
        else
        {
            adminProperties.Remove("UserAccountDirectoryPath");
        }
        adminProperties.Update();
    }

ご覧のとおり、GetAdminPropertiesメソッドを使用して の管理プロパティを取得しますSPSiteSubscriptionManager。その後SPSiteSubscriptionProperty、adminProperties コレクション内を値 で更新します"UserAccountDirectoryPath"

あとは、これも設定するだけで完了です。ILSpyなどのプログラムを使用して、SharePoint Powershell コマンドレットのコードを確認できます。この場合、コードは にあり Microsoft.SharePoint.PowerShell.SPCmdletSetSiteSubscriptionConfigます。

于 2012-11-20T08:11:50.163 に答える