2010-07-20 8 views
6

पर प्रबंधित संपत्ति को कैसे सेट करूं? System.DirectoryServices.AccountManagement में GroupPrincipal कक्षा का उपयोग करके मैं सक्रिय निर्देशिका में समूह बना रहा हूं और अपडेट कर रहा हूं। जब निर्माण और अद्यतन करते हैं, तो मुझे ManagedBy प्रॉपर्टी सेट करने में सक्षम होना चाहिए, जिसे आप एडी प्रबंधन कंसोल में समूह गुणों में Managed By टैब में सेट करने में सक्षम हैं।मैं समूहप्रणाली

क्या यह प्रोग्रामेटिक रूप से किया जा सकता है?

उत्तर

8

आप इस सीधे नहीं कर सकते, दुर्भाग्य से - लेकिन आप अंतर्निहित DirectoryEntry तक पहुँच प्राप्त है और यह वहाँ कर सकते हैं:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "YOURDOMAIN"); 

UserPrincipal toBeModified = UserPrincipal.FindByIdentity("....."); 
UserPrincipal manager = UserPrincipal.FindByIdentity(ctx, "......"); 

DirectoryEntry de = toBeModified.GetUnderlyingObject() as DirectoryEntry; 

if (de != null) 
{ 
    de.Properties["managedBy"].Value = manager.DistinguishedName; 
    toBeModified.Save(); 
} 
+0

'tobeModified' टाइप नहीं होना चाहिए 'समूह प्रिंसिपल'? –

+1

@PBMe_HikeIt: जब से 'प्रबंधित नहीं' संपत्ति 'ग्रुप प्रिंसिपल' में "सामने आई" नहीं है, तो आपको 'DirectoryEntry'' पर "एक स्तर नीचे" जाना होगा और वहां से निपटना होगा –

0

this page पर एक नज़र डालें। यह सी # में एडी पर सबसे अच्छे ट्यूटोरियल में से एक है।

कुछ कोड है कि (untested) काम करना चाहिए:

string connectionPrefix = "LDAP://" + ouPath; 
    DirectoryEntry dirEntry = new DirectoryEntry(connectionPrefix); 
    DirectoryEntry newGroup = dirEntry.Children.Add 
     ("CN=" + groupName, "group"); 
    group.Properties["sAmAccountName"].Value = groupName; 
    newGroup.Properties["managedBy"].Value = managerDistinguishedName; 
    newGroup.CommitChanges(); 
    dirEntry.Close(); 
    newGroup.Close(); 
+0

कि System.DirectoryServices.AccountManagement नाम स्थान कि ओपी का अनुरोध का उपयोग नहीं कर रही है ... –

+0

* http: //www.codeproject.com/KB/system/everythingInAD.aspx#13* नहीं मिला – Kiquenet

1

आप GroupPrincipal वर्ग का विस्तार करने और ExtensionSet विधि का उपयोग कर एक ManagedBy संपत्ति प्रदान कर सकता है।

+0

इस प्रकार मैं समस्या पर हमला कर रहा हूं ... हालांकि मुझे 'एक्सटेंशनसेट' ठीक से काम करने में परेशानी हो रही है –

+0

[ यह] (https://www.codeproject.com/articles/118122/how-to-use-ad-attributes-not-represented-in-userpr) कोड प्रोजेक्ट पर ग्रुप प्रिंसिपल का विस्तार करने के तरीके के बारे में एक महान स्पष्टीकरण की तरह दिखता है इनहे का उपयोग कर कक्षा रिटेंस –