Ändern Sie das Passwort des lokalen Administrators in C#
Ich bin auf der Suche nach einer Möglichkeit, ändern Sie das Kennwort für ein lokales Benutzerkonto (lokaler Administrator) auf einem Windows (XP in diesem Fall) Rechner. Ich habe gelesen das CodeProject-Artikel über einen Weg, dies zu tun, aber das scheint einfach nicht 'sauber'.
Kann ich sehen, dass dies mit WMI, so könnte die Antwort sein, aber ich kann nicht herausfinden, wie die WinNT WMI-namespace mit ManagementObject. Wenn ich versuche, den folgenden code wirft er eine "Ungültige Parameter" exception.
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);
}
Gibt es einen besseren Weg, dies zu tun? (Ich bin mit .NET 3.5)
Edit: Dank Ely für den Hinweis mich in die richtige Richtung. Hier ist der code landete ich mit:
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);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen die
DirectoryEntry
Klasse stattManagementObject
Klasse.Als Ely angegeben ist, können Sie das System verwenden.DirectoryServices-code, um dies zu erreichen pro MSDN: