Я пытаюсь реализовать скрипт / утилиту, которая переименовывает пользователя, устанавливает пароль по умолчанию, а затем предложит пользователю изменить свой пароль при первоначальном входе в Windows Server 2003. Я могу выполнить первые 2 пунктано не третий.В частности, я хочу, чтобы пользователь столкнулся с диалоговым окном Windows, которое гласит следующее: «Вы должны изменить свой пароль при первом входе в систему» Затем он переносит их в диалоговое окно «Изменить пароль», в котором есть кнопки «ОК» и «Отмена».Если они нажимают кнопку отмены, они переходят на начальный экран входа в систему.
Я реализовал приведенный ниже код, чтобы попытаться выполнить это.Вместо этого я получаю поведение, состоящее в том, что пользователю предоставляется диалоговое окно, в котором говорится, что срок действия пароля истек и должен быть изменен, и ему предлагается это сделать.Тем не менее, пользователь может просто нажать «Отмена», и пользователь вошел в систему. Утилита написана на языке c #, но я открыт для другого языка, если он облегчит задачу.
DirectoryEntry directory = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry userEntry = directory.Children.Find("defaultUsername");
userEntry.Rename("theUser");
userEntry.Invoke("SetPassword", new object[] { "defaultPassword" });
userEntry.Properties["PasswordExpired"].Value = 1;
userEntry.Properties["UserFlags"].Value = 0x800201;
userEntry.CommitChanges();