Windows (この場合は XP) マシンでローカル ユーザー アカウント (ローカル管理者) のパスワードを変更する方法を探しています。これを行う1つの方法についてCodeProjectの記事を読みましたが、これは「クリーン」ではないようです。
これはWMIで実行できるので、それが答えかもしれませんが、ManagementObject で WinNT WMI 名前空間を使用する方法がわかりません。次のコードを試すと、「無効なパラメーター」例外がスローされます。
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を使用しています)
編集:私を正しい方向に向けてくれてありがとうEly。最終的に使用したコードは次のとおりです。
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);
}