Actualización remota de GPO

Una de las cosas por las que me gusta el nuevo Windows Server 2012 es por esta. Muchos administradores de sistemas Windows como yo se acuerdan de las GPO y la actualización de las mismas en los equipos cliente, forzándola con un gpupdate /force, seguro que alguno se acuerda de alguien cuando lo digo.

Bien, pues en el nuevo WS2012 podemos hacerlo sin levantarnos de la silla y directamente desde la consola de Administración de directivas de grupo o por Powershell.

Si lo hacemos desde la consola tenemos que tener en cuenta que no nos lo deja hacer a un equipo individual sino sobre una OU y o un subcontenedor. Otra consideración es que no vale para equipos anteriores a Windows Vista y Windows Server 2008.

Para ello creo lo único que tengo que hacer es desde la propia consola de Administración de directivas de grupo, hacer botón derecho sobre un contenedor y hacer click en Actualización de GPO

Despues de hacer clic nos sale un mensaje avisando de la cantidad de equipos que se van a actualizar

Cuando confirmas el sí, nos sale una pantalla confirmando la actualización e informando de que en los próximos 10 minutos se va a proceder a realizar la instalación y forzara a las maquinas a actualizarse.

Powershell

Si queremos utilizar powershell utilizaremos el comando Invoke-GpUpdate. Si lo utilizamos solo sería equivalente a un gpupdate, la única diferencia es que no es inmediato como el gpupdate, sino que tardara aproximadamente 10 minuntos.

Podemos utilizarlo con el parámetro –Computer por ejemplo Invoke-GpUpdate –Computer PCW7 nos permite pedir la actualización de un equipo remoto PCW7.

Con el parámetro –force forzamos la actualización del equipo y con –RandomDelayinMinutes definimos el intervalo de tiempo máximo en el que se va a ejecutar.

Ejemplo:

Invoke-GpUpdate –Computer PCW7 –RamdomDelayinMinutes 0 –Force

Este ejemplo fuerza la actualización inmediata del equipo PCW7

Si queremos actualizar toda una OU o contenedor, por ejemplo todos los equipos en el contenedor Computers seria:

Get-ADComputer –Filter * -Searchbase “CN=Computers,DC=Fabrikam,DC=local” | ForEach { Invoke-GpUpdate –Computer $_.name}