使用WMI更改远程计算机上的用户密码

时间:2011-12-18 14:06:26

标签: c# wmi

有没有办法使用WMI更改远程计算机上的用户密码?我找不到任何资源。

我想补充说我们没有使用活动目录,我需要用C#编写代码。

1 个答案:

答案 0 :(得分:3)

嗯,这些是Hey Scripting Guy column中的VB脚本示例,但它们应该是可翻译的:

  

如何更改OU中所有计算机的本地管理员密码?

Set objOU = GetObject("LDAP://OU=Finance, DC=fabrikam, DC=com")
objOU.Filter = Array("Computer")

For Each objItem in objOU
    strComputer = objItem.CN
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator")
    objUser.SetPassword("i5A2sj*!")
Next

第一部分是基于AD的,但仅用于查找域中的所有计算机。第二部分(实际远程密码重置)根本不依赖于AD。


所以,它基本上绑定到WinNT://<ComputeName>/<UserName>,然后调用SetPassword()


关于更改local admin account password的另一个问题已经在C#中了:

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);
}