2012-07-17 39 views
7

Paylaşım noktasında çoklu kiracı temel hazırlığı üzerinde çalışıyorum ve paylaşım noktası kullanarak site aboneliği için kullanıcı hesabı dizin yolunu ayarlayabiliyorsanız sorun çözme sorunu yaşıyorum nesne modeli. Bunun, aşağıdaki cmdlet'e sahip powershell yoluyla yapılabileceğini biliyorum.Bir bağlantı noktası sitesi abonelikleri kullanıcı hesabı dizin yolunu nesne modeliyle yapılandırma

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

Şimdiye kadar, varsayılan site ve özellik paketi ile site aboneliği oluşturacak aşağıdaki kodu aldım. Ancak, aktif dizinde kullanıcı OU'nun yolunu nasıl ayarlayacağımı anlayamıyorum.

//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); 

Herhangi bir öneriniz var mı?

+1

Ne tür bir kod kullandığını görmek için powershell komutunda yansımayı kullanmayı denediniz mi? –

cevap

1

Rikard'ın önerdiği gibi sizin için yansıma kullandım.

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(); 
    } 

bunu SPSiteSubscriptionManager yönetici özelliklerini almak için GetAdminProperties yöntemini kullanır görebileceğiniz gibi:

Set-SPSiteSubscriptionConfig aşağıdakileri yapar. Daha sonra devam eder ve adminProperties koleksiyonundaki SPSiteSubscriptionProperty değerini "UserAccountDirectoryPath" değeriyle güncelleştirir.

Şimdi yapmanız gereken tek şey bunu ayarlamaktır ve işiniz bitti. SharePoint Powershell komutlarının koduna bakmak için ILSpy gibi bir program kullanabilirsiniz. Bu durumda kodu Microsoft.SharePoint.PowerShell.SPCmdletSetSiteSubscriptionConfig'da bulabilirdiniz.

+1

Bir demet sayesinde, SP2010 ve 2013'ü montajımızla desteklemeye son verdik ve bu nedenle powershell cmdlet'lerine bakmadan karar verdik. Ancak, eminim bunun dışında bazı faydaları olacak başkaları vardır. Tekrar teşekkürler –

+0

Sadece güvenli tarafta olmak için SP2013'ü de kontrol ettim - aynı kod. Yeni sürüm için bu kodu kullanarak sadece güvenli olacaksınız :-) –