using System.DirectoryServices;
// 域名
string domain = "abc.com";
// 管理员用户名和密码
string username = "adminaccount";
string password = "adminpass";
// 需要修改密码的用户账户名
string userAccount = "aa bb";
// 新密码
string newPassword = "newpass";
// 连接到 AD
DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain, username, password);
// 搜索用户
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = "(&(objectClass=user)(sAMAccountName=" + userAccount + "))";
SearchResult result = searcher.FindOne();
// 如果找到了该用户
if (result != null)
{
// 获取用户对象
DirectoryEntry user = result.GetDirectoryEntry();
// 修改密码
user.Invoke("SetPassword", new object[] { newPassword });
user.CommitChanges();
Console.WriteLine("密码已修改!");
Console.ReadLine();
}
else
{
Console.WriteLine("未找到用户 " + userAccount);
Console.ReadLine();
}
有的时候在电脑上登录AD Tool有点麻烦,需要输入一长串密码,那么是否可以用c#代码实现呢?上面的代码就可以实现直接用c#修改用户密码。
1,使用前,需要点击管理NuGet程序包, 选择第一个下载
2,设置域名,管理员的用户名和密码,需要修改的用户账户名,需要设置的新密码,这几个参数即可。
需要注意的是,要检查管理员权限:请确保你的程序拥有足够的权限来访问 Active Directory。如果需要特殊权限,请确保在运行程序前已经获得了这些权限。
希望以上解决方法能够帮助你解决问题。