2010-07-01 16 views
10

मैं एक स्थानीय उपयोगकर्ता समूह को प्रोग्रामेटिक रूप से बनाने का तरीका ढूंढ रहा हूं। मुझे क्वेरी करने और उपयोगकर्ताओं को जोड़ने के तरीके के बारे में बहुत सारे उदाहरण मिले लेकिन कुछ भी नहीं जो मैं समझ सकता हूं कि नया समूह कैसे बनाया जाए।स्थानीय उपयोगकर्ता समूह (सी # में) कैसे बनाएं

var dirEntry = new DirectoryEntry(
         "WinNT://" + Environment.MachineName + ",computer"); 

/* Code to test if the group already exists */    

if (!found) 
{ 
    DirectoryEntry grp = dirEntry.Children.Add(groupName, "Group"); 
    dirEntry.CommitChanges(); 
} 

यह है कि मैं क्या पर पहुंच गए है, लेकिन मैं जानता हूँ कि यह गलत है के रूप में CommitChanges() सिर्फ एक NotImplementedException फेंकता है।

मैं एक नमूना के रूप में इस का उपयोग करते हुए किया गया है, लेकिन मैं भी यह काम करने के लिए (धन्यवाद एमएस) नहीं मिल सकता है:

http://msdn.microsoft.com/en-us/library/ms815734

कोई भी एक कोड का टुकड़ा है मैं एक स्थानीय बनाने के लिए उपयोग कर सकते हैं समूह?

उत्तर

10

यह मेरे लिए काम करता है:

var ad = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); 
DirectoryEntry newGroup = ad.Children.Add("TestGroup1", "group"); 
newGroup.Invoke("Put", new object[] { "Description", "Test Group from .NET" }); 
newGroup.CommitChanges(); 

उन पर this लेख से अनुकूलित।

ऐसा लगता है कि आप अपने उदाहरण में "पुट" को आमंत्रित करते हैं - मुझे लगता है कि यही कारण है कि आप NotImplementedException नहीं देख रहे हैं।

+0

हाँ, यह वही हुआ जो वास्तव में हुआ। मुझे उपयोगकर्ता जोड़ने और "जोड़ें" नामक एक उदाहरण मिला। "पुट" के साथ वही कोड अब काम करता है। धन्यवाद! –

+0

वोट करने के लिए पर्याप्त अंक नहीं हैं, लेकिन मैंने आपका जवाब स्वीकार कर लिया है। फिर से धन्यवाद। –

+0

@ द हीरा-जेड - धन्यवाद! मुझे एहसास हुआ कि मैंने आपके प्रश्न को ऊपर नहीं उठाया है, इसलिए मेरे पास अभी है। स्टैक ओवरफ़्लो में आपका स्वागत है! –

6

आप कोशिश कर सकते हैं निम्नलिखित (इसे अपने आप को प्रयास नहीं किया है):

PrincipalContext context = new PrincipalContext(ContextType.Machine); 
GroupPrincipal group = new GroupPrincipal(context); 
group.Name = model.Name; 
group.Save(); 

यह System.DirectoryServices.AccountManagement उपयोग करता है।

+4

आप इसका प्रयास किए बिना उत्तर क्यों पोस्ट करेंगे? यह सिर्फ लाइन शोर है जो जंगली हंस पीछा करता है। –

+2

निष्पक्ष होने के लिए, यह काम करता है ... – Doogal

+0

आप समूह के नाम को कन्स्ट्रक्टर में भी पास कर सकते हैं: समूह प्रिंसिपल समूह = नया समूह प्रिंसिपल (संदर्भ, "MyLocalGroup") –

संबंधित मुद्दे