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

发布于 2024-12-21 19:19:29 字数 86 浏览 0 评论 0原文

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

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

Is there a way to change a users password on a remote computer using WMI? I couldn't locate any resources on this.

I'd just like to add that we are not using active directory and I need to write my code in C#.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幻梦 2024-12-28 19:19:29

嗯,这些是 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:///,然后调用 SetPassword()


关于更改本地管理员帐户密码的另一个问题已经在 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);
}

Well, these are VB Script examples in this Hey Scripting Guy column, but they should be translatable:

How do I change the local Administrator password for all the computers in an 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

The first part is AD based, but is just being used to find all of the machines in the domain. The second part (that does the actual remote password reset) doesn't rely on AD at all.


So, it's basically bind to WinNT://<ComputeName>/<UserName>, then call SetPassword().


And this other SO question on changing the local admin account password is already in 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);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文