Ä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);
}
InformationsquelleAutor Andy May | 2008-10-24
Schreibe einen Kommentar