linux环境下.net core修改AD域用户密码
时间: 2023-08-01 11:11:16 浏览: 271
在 Linux 环境下使用 .NET Core 修改 AD 域用户密码,可以使用 `System.DirectoryServices.AccountManagement` 命名空间提供的 API。下面是示例代码:
```csharp
using System;
using System.DirectoryServices.AccountManagement;
namespace ChangePassword
{
class Program
{
static void Main(string[] args)
{
try
{
// 创建 PrincipalContext 对象,连接到 AD 域
using (var context = new PrincipalContext(ContextType.Domain, "your-domain.com", "CN=Administrator,CN=Users,DC=your-domain,DC=com", "password"))
{
// 获取指定用户的 Principal 对象
var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "testuser");
if (user != null)
{
// 修改用户密码
user.SetPassword("new-password");
user.Save();
Console.WriteLine("Password changed successfully.");
}
else
{
Console.WriteLine("User not found.");
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
}
```
其中,`PrincipalContext` 构造函数的第一个参数指定 AD 域的类型,第二个参数指定 AD 域的名称,第三个参数指定连接 AD 域所需的用户名,第四个参数指定连接 AD 域所需的密码。
`UserPrincipal.FindByIdentity` 方法用于获取指定用户的 `UserPrincipal` 对象,其中第一个参数指定查询条件的类型,第二个参数指定查询条件的值,第三个参数指定查询的用户名称。
`UserPrincipal.SetPassword` 方法用于修改用户密码,其中参数为新密码。
最后,调用 `UserPrincipal.Save` 方法将修改保存到 AD 域中。
阅读全文