Nhiều nhờ marc_s cho mẫu mã sau đây, từ phát hành trước đây của tôi Creating user in Active Directory with C# errorsTạo người dùng trong một OU cụ thể trong Active Directory sử dụng C#
public static string ldapPath = "LDAP://OU=Domain Users,DC=contoso,DC=com";
public static string CreateUserAccount(string userName, string userPassword)
{
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "contoso.com",ldapPath);
// create a user principal object
UserPrincipal user = new UserPrincipal(ctx, userName, userPassword, true);
// assign some properties to the user principal
user.GivenName = "User";
user.Surname = "One";
// force the user to change password at next logon
user.ExpirePasswordNow();
// save the user to the directory
user.Save();
return user.SamAccountName;
}
Bây giờ tôi đang cố gắng để có được những tài khoản người dùng vào một OU cụ thể . Giữ ldapPath trong các lỗi PrincipalContext
System.DirectoryServices.AccountManagement.PrincipalOperationException: Unknown error (0x80005000) ---> System.Runtime.InteropServices.COMException (0x80005000): Unknown error (0x80005000)
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_SchemaEntry()
at System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(DirectoryEntry de)
at System.DirectoryServices.AccountManagement.ADStoreCtx..ctor(DirectoryEntry ctxBase, Boolean ownCtxBase, String username, String password, ContextOptions options)
at System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(DirectoryEntry entry)
at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInit()
--- End of inner exception stack trace ---
at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInit()
at System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()
at System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()
at System.DirectoryServices.AccountManagement.PrincipalContext.ContextForType(Type t)
at System.DirectoryServices.AccountManagement.Principal.GetStoreCtxToUse()
at System.DirectoryServices.AccountManagement.Principal.set_SamAccountName(String value)
at System.DirectoryServices.AccountManagement.UserPrincipal..ctor(PrincipalContext context, String samAccountName, String password, Boolean enabled)
at ADINtegrationTest.ActiveDirectory.CreateUserAccount(String userName, String userPassword) in D:\_data\ADINtegrationTest\ADINtegrationTest\ActiveDirectoryUtils.cs:line 20
at ADINtegrationTest.Form1.Form1_Load(Object sender, EventArgs e) in D:\_data\ADINtegrationTest\ADINtegrationTest\Form1.cs:line 32
Và nếu tôi xóa ldapPath, nó hoạt động tốt, nhưng ném tài khoản người dùng vào OU người dùng. Tôi cũng đã thử ldapPath như LDAP: //contoso.com/OU=Domain Users, DC = contoso, DC = com, không hoạt động.
Đã làm điều đó !! Tôi đã xóa LDAP: // và nó hoạt động tuyệt vời! việc giữ contoso.com cũng hoạt động. Cảm ơn bạn!! –
@marc_s tìm kiếm tốt, làm cách nào tôi có thể thêm thông tin đăng nhập của quản trị viên vào tài khoản này? –
@DavidGidony: cho người dùng mới được tạo? Bạn chỉ cần thêm người dùng đó vào nhóm 'Quản trị viên' –