Я ищу способ изменить пароль учетной записи локального пользователя (локального администратора) на компьютере с Windows (в данном случае XP). Я прочитал статью CodeProject об одном способе сделать это, но это не кажется «чистым».
Я вижу, что это возможно сделать с WMI , так что это может быть ответом, но я не могу понять, как использовать пространство имен WinNT WMI с ManagementObject. Когда я пытаюсь выполнить следующий код, возникает исключение «Неверный параметр».
public static void ResetPassword(string computerName, string username, string newPassword){
ManagementObject managementObject = new ManagementObject("WinNT://" + computerName + "/" + username); // Throws Exception
object[] newpasswordObj = {newPassword};
managementObject.InvokeMethod("SetPassword", newpasswordObj);
}
Есть ли лучший способ сделать это? (Я использую .NET 3.5)
Редактировать: Спасибо, Элай, за то, что указал мне правильное направление. Вот код, который я использовал в итоге:
public static void ResetPassword(string computerName, string username, string newPassword) {
DirectoryEntry directoryEntry = new DirectoryEntry(string.Format("WinNT://{0}/{1}", computerName, username));
directoryEntry.Invoke("SetPassword", newPassword);
}