Сбросить пароль на Windows Server 2008 R2 - PullRequest
3 голосов
/ 23 декабря 2010

У нас есть приложение для самообслуживания сотрудников, работающее на автономном сервере.Одной из функций приложения является «забытый пароль», поэтому сотрудники могут сбросить свои собственные пароли.Он отлично работает на всех серверах, но не на Windows Server 2008 R2.Ниже приведен фрагмент кода, который мы используем:

User.Invoke("SetPassword", new object[] {"#12345Abc"});
User.CommitChanges();

Похоже, что это невозможно сделать в Windows Server 2008 R2 вообще.Если у кого-то это работает, пожалуйста, помогите.

Спасибо

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

Мы также попробовали это:

PrincipalContext context = new PrincipalContext(ContextType.Machine, "servername");

UserPrincipal up = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "username");
if (up != null)
{
    up.SetPassword("newpassword");
    // We got the same access denied exception here
    up.Save();
}
1 голос
/ 23 декабря 2010

Попробуйте UserPrincipal.SetPassword.Это абстракция более высокого уровня и, следовательно, умнее.Он будет знать, какую функцию нижнего уровня вызвать.Способ вызова кажется мне слишком хрупким.

...