以本地管理员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"
答案 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>")