2017-07-03 91 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

相關問題