Windows'ta yerel bir kullanıcı hesabının (yerel Administrator) (bu durumda XP) makinenin parolasını değiştirmenin bir yolunu arıyorum. Bunu yapmanın bir yolu hakkında CodeProject article'u okudum, ancak bu sadece 'temiz' görünmüyor.Yerel yönetici parolasını C olarak değiştir C#
Bunun possible to do with WMI olduğunu görebiliyorum, bu yanıt olabilir, ancak WinNT WMI ad alanını ManagementObject ile nasıl kullanacağımı anlayamıyorum. Aşağıdaki kodu denediğimde, "Geçersiz Parametre" istisnası atar.
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);
}
Bunu yapmanın daha iyi bir yolu var mı? (.NET 3.5 kullanıyorum).
Düzenleme: Bana doğru yönde işaret ettiğin için teşekkürler.
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);
}
Teşekkür fakat bu örnek Active Directory için LDAP kullanıyor, soru yerel hesap hakkında oldu . –