2013-05-13 144 views
4

登陆到$ComputerName以本地管理员的Windows Server 2008 R2 SP1的PowerShell:更改本地管理员密码

这个脚本:

$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

什么是$计算机名的价值? – 2013-05-14 07:47:01

+0

'$ ComputerName =“WS08-SF-QA-1”' – BaltoStar 2013-05-14 14:05:07

回答

0

对于本地计算机,这工作

$comp=hostname 

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

如果你的目标是真正改变Administrator帐户的密码(无论它被重新命名 - 它并不总是被命名为“管理员”) ,我建议使用脚本像一个在这篇文章中:

Windows IT Pro: Resetting the Local Administrator Password on Computers

在本文的下载提供的复位,LocalAdminPassword.ps1脚本使用ADSI连接到远程系统,S o推测通过远程计算机的防火墙允许远程管理。

3

当我想在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)