有没有办法使用WMI更改远程计算机上的用户密码?我找不到任何资源。
我想补充说我们没有使用活动目录,我需要用C#编写代码。
答案 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);
}