Se você estiver disposto a usar um script em vez de uma política de grupo, não deverá levar duas páginas. Como tenho roteiros mentindo de qualquer maneira para um propósito diferente que poderia ser alterado, eu provavelmente faria algo como:
Obtenha uma lista de computadores (provavelmente precisará de ajustes para o seu ambiente, tanto para a UO quanto para o limite):
dsquery computer ou=sbscomputers,ou=computers,ou=mybusiness,dc=mydomain,dc=local -o rdn -limit 500 > control.txt
SetLocal EnableDelayedExpansion
FOR /F %%L IN (control.txt) DO (
set line=%%L
echo !line!
set line=!line:"=!
echo !line!
echo !line! >> process.txt
)
sort < process.txt > sorted.txt
del process.txt
move sorted.txt control.txt
Você pode então fazer algo como:
$computers = Get-Content -Path c:\path\to\control.txt
$user = "administrator"
$Password = "password"
Foreach($computer in $computers) {
$user = [adsi]"WinNT://$computer/$user,user"
$user.SetPassword($Password)
$user.SetInfo()
echo "Password reset on $computer"
}
Seria melhor ainda salvar a senha como uma string segura. Este artigo tem instruções úteis para isso. Se você não fizer isso, provavelmente desejará editar a senha do segundo script depois de executá-la.