У меня есть следующее:
using System;
using System.DirectoryServices.AccountManagement;
public class ChangePassword
{
public static void Main()
{
PrincipalContext context = new PrincipalContext(ContextType.Machine);
UserPrincipal user = UserPrincipal.FindByIdentity(context, "someLimitedAccount");
user.ChangePassword( "xxx", "zzz" );
}
}
Это прекрасно работает с учетными записями администратора, но, похоже, вылетает, когда я пытаюсь изменить ограниченные учетные записи в XP:
Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
at ChangePassword.Main()
Возможно ли то, что я пытаюсь сделать?Если да, то как?
РЕДАКТИРОВАТЬ # 1:Я добавил следующее:Console.WriteLine( "user: " + user );
Ниже этой строки:UserPrincipal user = UserPrincipal.FindByIdentity(context, "someLimitedAccount");
И я получаю это:user:
Это не выглядит как пользователь null, когда я его печатаю, но опять же я не очень .Net парень - я, кажется, помню, что это ожидаемое поведение.