Powershell脚本重置本地管理员密码

时间:2017-07-03 04:13:14

标签: powershell

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

任何人都可以帮助我吗?

$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()
} 

1 个答案:

答案 0 :(得分:0)

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

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