2017-07-03 126 views
0

我有一个脚本是重置远程机器的本地管理员密码,我已经提到了脚本中的主机列表。但只是想有什么办法,以便我们可以添加行在我的脚本中,这样可以重置特定子网中所有机器的管理员密码(例如:10.241.1.0和10.241.2.0)?Powershell脚本重置本地管理员密码

任何人都可以帮助我吗?

$computers = Get-Content -path C:\hosts.txt 
$user = "Administrator" 
$pass = "password1" 

Foreach($computer in $computers) 
{ 
$user = [adsi]"WinNT://$computer/$user,user" 
$user.SetPassword($pass) 
$user.SetInfo() 
} 

回答

0

您可以轻松地生成IP的使用范围运算符(a..b)的子网。我会定义一个函数,然后用特定的子网称之为:

Function Get-SubnetIps($subnet){ 1..254 | %{ $subnet + $_ } } 

使用例子是:

$computers = Get-SubnetIps "192.168.1." 
$user = "Administrator" 
$pass = "password1" 

Foreach($computer in $computers) 
{ 
    $user = [adsi]"WinNT://$computer/$user,user" 
    $user.SetPassword($pass) 
    $user.SetInfo() 
} 

您可能会遇到问题,如果每个IP不可达。 try/catch会救你,如果这应该会通过。在编写这些脚本时,它可以是helpful to report progress。在检索构件“SetPassword”发生

+0

以下例外:“网络路径找不到 。”在线:4焦炭:5 以下异常发生而检索构件‘SetInfo’:“网络路径未找到 “在线:5 char:5 – Shimith

+0

就像我说过的:”如果每个IP都不可达,你可能会遇到问题,如果这种情况发生,try/catch将会帮你节省开支。有助于报告进度。“ – Mitch

相关问题