C# 非管理修改AD 密码
时间: 2023-06-28 17:15:00 浏览: 69
如果你想在C#中非管理员身份修改Active Directory(AD)密码,可以使用System.DirectoryServices.AccountManagement命名空间提供的类来实现。下面是一个示例代码:
```csharp
using System.DirectoryServices.AccountManagement;
//指定AD域名称
string domainName = "yourdomain.com";
//指定要修改密码的用户账号
string userName = "user";
//指定要修改的密码
string newPassword = "newpassword";
//创建PrincipalContext对象,使用指定的AD域名称和认证类型(Kerberos或NTLM)
PrincipalContext context = new PrincipalContext(ContextType.Domain, domainName, null, ContextOptions.SimpleBind);
//根据用户名查找用户Principal对象
UserPrincipal user = UserPrincipal.FindByIdentity(context, userName);
if (user != null)
{
//修改密码
user.SetPassword(newPassword);
user.Save();
Console.WriteLine("密码修改成功!");
}
else
{
Console.WriteLine("未找到要修改密码的用户账号!");
}
```
以上代码中,需要根据实际情况修改domainName、userName和newPassword等参数。在代码中,首先创建了一个PrincipalContext对象,指定AD域名称和认证类型,然后根据用户名查找用户Principal对象,如果找到用户,则调用其SetPassword方法修改密码并保存更改。
注意:使用非管理员身份修改AD密码需要确保对应的用户具有修改密码的权限,否则会抛出异常或者修改失败。