Reinicie todas las computadoras en una unidad organizativa específica
Recientemente recibí una solicitud para apagar las computadoras por habitación. Específicamente, se trataba de una escuela donde los estudiantes a menudo se olvidan de apagar sus computadoras. Por supuesto que esto es posible con PowerShell, ¿qué más?
La meta
Primero tenemos que recuperar todas las unidades organizativas. No sólo los de los padres, sino también los de los hijos. Me gusta la facilidad de uso con Out-GridView.
$room=Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=Clients,OU=Workstations,DC=sid-500,DC=com' -SearchScope OneLevel | Select-Object DistinguishedName | Out-GridView -PassThru -Title 'Select Computers OU to restart all Computers in that OU'
Tenga en cuenta el comando Out-GridView después de la tubería. Esto nos da la posibilidad de seleccionar la OU en una especie de interfaz gráfica.
Después de seleccionar la unidad organizativa, haga clic en Aceptar. Todas las computadoras en esa unidad organizativa se apagarán.
El código
Tenga en cuenta que debe adaptar la línea 1 a su estructura organizativa como mejor le parezca.
$room=Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=Workstations,DC=sid-500,DC=com' -SearchScope OneLevel | Select-Object DistinguishedName | Out-GridView -PassThru -Title 'Select Computers OU to restart all Computers in that OU'
$comp=(Get-ADComputer -SearchBase $room.distinguishedname -Filter *).Name
Foreach ($c in $comp)
{Restart-Computer -ComputerName $c -ErrorAction SilentlyContinue -Force -Verbose}
Eso es todo. Automatización completa.
