【发布时间】:2010-04-08 12:25:33
【问题描述】:
如何使用 VB.NET/C# 远程更改本地用户帐户密码?
我研究了 DirectoryEntry 类,知道如何将用户添加到组,但不知道如何更改(本地)密码。
【问题讨论】:
标签: .net active-directory
如何使用 VB.NET/C# 远程更改本地用户帐户密码?
我研究了 DirectoryEntry 类,知道如何将用户添加到组,但不知道如何更改(本地)密码。
【问题讨论】:
标签: .net active-directory
使用 .net 3.5:
PrincipalContext context = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(context, "user");
用户可以更改自己的密码:
user.ChangePassword("old", "new");
或者,如果您以 AD 管理员身份运行,您可以重置它:
user.SetPassword("1234567");
【讨论】:
ContextType.Machine 应该可以工作。不太确定,从未与本地用户打过交道。谢谢。
是的,
这可能适用于 .net 3.5 及更高版本,但它需要启用并运行服务器服务(即文件共享)。如果不是呢???
我更喜欢来自 VB.Net 程序集核心的古老、可爱、完美且有保证的 ADSI 语法(顺便说一句,它的工作原理就像一个魅力)...示例:
Dim uName as string = "trgtUser"
Dim uPass as string = "newPass"
Dim user = GetObject("WinNT://./" & uName & ",user")
user.SetPassword(uPass)
这就是在本地机器上设置密码的全部内容!
玩得开心;)
【讨论】: