WMI-更改远程计算机上的用户密码
有没有方法使用WMI更改远程计算机上的用户密码? 我找不到任何资源,所以任何帮助,将不胜感激。WMI-更改远程计算机上的用户密码
感谢
UPDATE首先感谢您的快速答复!你们统治!
我只是想,我们没有使用Active Directory,我需要写我的代码在C#中添加...
再次感谢 - 生病的样子成什么现在
正确的建议好,这些是这个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);
}
哈,我*只是*发布了与评论完全相同的内容。尽管如此,这应该起作用。 – 2011-12-18 14:13:55
@CodyGray - 每当有人提到使用WMI来做* X *时,我的第一本能就是去搜索“Hey Scripting Guy”内容:-) – 2011-12-18 14:18:40
Damien_The_Unbeliever谢谢!不幸的是,我自己缺乏知识,这使我难以忍受。我不知道如何将这些脚本翻译成C#,并在C#中的解决方案使用DirectoryEntry对象,而不是说管理对象....所以我真的不能前进这一点。 – JanivZ 2011-12-18 14:26:24
是通过Active Directory连接远程计算机?如果是这样,请参阅[这里](http://blogs.technet.com/b/heyscriptingguy/archive/2004/10/15/how-can-i-change-a-user-s-password.aspx)。你应该能够很容易地将代码翻译成C#... – 2011-12-18 14:12:17
我已经更新了我的答案,以包含一个[另一个SO问题]的链接(http://*.com/questions/234845/change-local-administrator -password-in-c-sharp),它讨论了本地更改,但最终的代码看起来应该也适用于远程机器,并且它已经在C#中。 – 2011-12-18 14:22:04