PowerShell:更改本地管理员密码

时间:2013-05-13 22:20:19

标签: powershell

以本地管理员Windows Server 2008 R2 SP1

登录$ComputerName

这个脚本:

$admin=[adsi]("WinNT://" + $ComputerName + "/administrator, user")
$admin.psbase.invoke("SetPassword", $Password)
$admin.psbase.CommitChanges()

本地运行抛出异常:Exception calling "Invoke" with "2" argument(s):"The network path was not found"

4 个答案:

答案 0 :(得分:4)

当我想在AD域中的所有服务器上更改本地管理员密码时,我只使用PS远程处理,它允许将非常基本的命令从CMD推送到远程服务器。

我写了一个简短的脚本,我使用powershell从域控制器获取信息,并根据某些条件将命令推送到服务器。

我发现如何更改本地管理员密码非常简单快捷。唯一的要求是在所有服务器上启用WinRM。

脚本在这里:

Invoke-Command -ScriptBlock {net user administrator "Password01"} -ComputerName (Get-ADComputer -SearchBase "OU=test,OU=servers,DC=lab,DC=com" -Filter * | Select-Object -Expand Name)

答案 1 :(得分:1)

没有测试过,但我找到了

([adsi]“WinNT://<Local or Remote Computer Name>/<Username>”).SetPassword(“<Password>”)

http://www.petri.co.il/how-to-change-user-password-with-powershell.htm

答案 2 :(得分:1)

如果您的目标确实是更改管理员帐户的密码(无论是否已重命名 - 它并不总是命名为&#39;管理员&#39;),我建议您使用类似的脚本本文中的那篇:

Windows IT Pro: Resetting the Local Administrator Password on Computers

文章下载中提供的Reset-LocalAdminPassword.ps1脚本使用ADSI连接到远程系统,因此假定允许通过远程计算机的防火墙进行远程管理。

答案 3 :(得分:0)

对于本地计算机,这可以正常工作

$comp=hostname

("WinNT://" + $comp + "/<user_name_to_change_password_for>").SetPassword("<actualpasswordtext>")