2010-07-01 36 views
10

Tôi đang tìm cách tạo lập nhóm người dùng cục bộ theo cách lập trình. Tôi đã tìm thấy rất nhiều ví dụ về cách truy vấn và thêm người dùng nhưng không có gì tôi có thể hiểu về cách tạo nhóm mới.Cách tạo nhóm người dùng cục bộ (trong C#)

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

Đây là những gì tôi đã đến nhưng tôi biết đó là sai như CommitChanges() chỉ ném một NotImplementedException.

Tôi đã sử dụng điều này như một mẫu nhưng tôi thậm chí không thể lấy nó để làm việc (nhờ MS):

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

Bất cứ ai cũng có một đoạn mã tôi có thể sử dụng để tạo ra một địa phương mới nhóm?

Trả lời

10

này làm việc cho tôi:

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

Phỏng theo this bài viết về người sử dụng.

Có vẻ như bạn đã bỏ lỡ Gọi "Đặt" trong ví dụ của bạn - tôi đoán đây là lý do tại sao bạn thấy NotImplementedException.

+0

Đúng, đó chính xác là những gì đã xảy ra. Tôi đã tìm thấy ví dụ về cách thêm Người dùng và được gọi là "Thêm". Cùng một mã với "Đặt" hoạt động ngay bây giờ. Cảm ơn! –

+0

Không đủ điểm để bỏ phiếu, nhưng tôi đã chấp nhận câu trả lời của bạn. Cảm ơn bạn lần nữa. –

+0

@ the-diamond-z - cảm ơn! Tôi nhận ra tôi đã không upvote câu hỏi của bạn, vì vậy tôi chỉ có. Chào mừng bạn đến với Stack Overflow! –

6

Bạn có thể thử như sau (đã không thử nó bản thân mình):

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

này sử dụng System.DirectoryServices.AccountManagement.

+4

Tại sao bạn lại đăng câu trả lời mà không cần thử? Nó chỉ là tiếng ồn đường dẫn đến cuộc săn lùng ngỗng hoang dã. –

+2

Để công bằng, nó hoạt động ... – Doogal

+0

Bạn cũng có thể chuyển tên nhóm trong hàm tạo như sau: GroupPrincipal group = new GroupPrincipal (ngữ cảnh, "MyLocalGroup") –

Các vấn đề liên quan