Настройка пути к каталогу учетной записи пользователя подписки на сайт sharepoint с помощью объектной модели

Я работаю над мультитенантной инициализацией в 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 

Пока у меня есть следующий код, который создаст подписку на сайт с сайтом по умолчанию и пакетом функций. Тем не менее, я не могу понять, как установить путь к 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);

Какие-либо предложения?

1 ответ

Решение

Как предположил Рикард, я использовал отражение для тебя.

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,

Другие вопросы по тегам